From d3c9813f6ebc4aeab0b5d6078e8af95e5d9ba91c Mon Sep 17 00:00:00 2001 From: Hojun-Cho Date: Sun, 16 Aug 2026 15:46:00 +0900 Subject: [PATCH] build: scope IBus flags, rebuild containers with clean, dedup gtk install Only ibus.o needs the D-Bus and xkbcommon flags, so give them the same per-object scoping as the popup and XIM objects. The docker targets used -B, which recursive makes inherit: the daemon was linked three times and the live tests built twice per docker-check. gtk/Makefile repeated the module-directory check and cache refresh in install and uninstall. --- Makefile | 21 +++++++++++---------- gtk/Makefile | 30 ++++++++++-------------------- 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/Makefile b/Makefile index 68de2e3..1d1e80a 100644 --- a/Makefile +++ b/Makefile @@ -3,16 +3,16 @@ LD = 9l PKG_CONFIG ?= pkg-config CFLAGS ?= -O2 -g WARN_CFLAGS = -Wall -Wextra -PKG_CFLAGS = $(shell $(PKG_CONFIG) --cflags dbus-1 xkbcommon) -PKG_LIBS = $(shell $(PKG_CONFIG) --libs dbus-1 xkbcommon) +IBUS_CFLAGS = $(shell $(PKG_CONFIG) --cflags dbus-1 xkbcommon) +IBUS_LIBS = $(shell $(PKG_CONFIG) --libs dbus-1 xkbcommon) XIM_CFLAGS = $(shell $(PKG_CONFIG) --cflags xcb-imdkit xkbcommon-x11) XIM_LIBS = $(shell $(PKG_CONFIG) --libs xcb-imdkit xkbcommon-x11) TEXT_CFLAGS = $(shell $(PKG_CONFIG) --cflags pangocairo cairo) TEXT_LIBS = $(shell $(PKG_CONFIG) --libs pangocairo cairo) POPUP_CFLAGS = $(shell $(PKG_CONFIG) --cflags xcb-randr) POPUP_LIBS = $(shell $(PKG_CONFIG) --libs xcb-randr) -PROJECT_CPPFLAGS = $(PKG_CFLAGS) -PROJECT_LDLIBS = -lthread -lbio -lxcb $(PKG_LIBS) $(TEXT_LIBS) \ +PROJECT_CPPFLAGS = +PROJECT_LDLIBS = -lthread -lbio -lxcb $(IBUS_LIBS) $(TEXT_LIBS) \ $(XIM_LIBS) $(POPUP_LIBS) PROG = strans DOCKER_IMAGE = strans-build @@ -31,6 +31,7 @@ $(PROG): $(OBJS) $(LD) $(LDFLAGS) -o $@ $(OBJS) $(PROJECT_LDLIBS) $(LDLIBS) $(OBJS): dat.h fn.h ipc.h +ibus.o: PROJECT_CPPFLAGS += $(IBUS_CFLAGS) font.o: PROJECT_CPPFLAGS += $(TEXT_CFLAGS) win.o: PROJECT_CPPFLAGS += $(POPUP_CFLAGS) $(XIMOBJS): PROJECT_CPPFLAGS += -I. $(XIM_CFLAGS) @@ -55,20 +56,20 @@ docker-image: Dockerfile docker build -t $(DOCKER_IMAGE) - < Dockerfile docker-build: - $(DOCKER_RUN) make -B all + $(DOCKER_RUN) sh -c 'make clean && make all' docker-check: - $(DOCKER_RUN) make -B check check-live check-stress \ - UNITARGS="$(UNITARGS)" + $(DOCKER_RUN) sh -c 'make clean && \ + make check check-live check-stress UNITARGS="$(UNITARGS)"' docker-check-live: - $(DOCKER_RUN) make -B check-live + $(DOCKER_RUN) sh -c 'make clean && make check-live' docker-check-stress: - $(DOCKER_RUN) make -B check-stress + $(DOCKER_RUN) sh -c 'make clean && make check-stress' docker-bench: - $(DOCKER_RUN) make -B bench + $(DOCKER_RUN) sh -c 'make clean && make bench' docker: docker-image $(MAKE) docker-build diff --git a/gtk/Makefile b/gtk/Makefile index 298fa33..20ed3ed 100644 --- a/gtk/Makefile +++ b/gtk/Makefile @@ -21,30 +21,20 @@ $(PROG): main.c ../ipc.c ../ipc.h $(CC) $(CPPFLAGS) -I.. $(GTK_CFLAGS) -Wall $(CFLAGS) $(LDFLAGS) \ -shared -fPIC -o $@ main.c ../ipc.c $(GTK_LIBS) $(LDLIBS) +CHECKDIR = test -n "$$module_dir" || { \ + echo "cannot find GTK 3 module directory; set GTK_MODULE_DIR" >&2; \ + exit 1; } +REFRESH = test -n "$(DESTDIR)" || { \ + unset GTK_PATH GTK_IM_MODULE_FILE; $(GTK_QUERY_IMMODULES) --update-cache; } + install: $(PROG) - module_dir="$(GTK_MODULE_DIR)"; \ - test -n "$$module_dir" || { \ - echo "cannot find GTK 3 module directory; set GTK_MODULE_DIR" >&2; \ - exit 1; \ - }; \ + module_dir="$(GTK_MODULE_DIR)"; $(CHECKDIR); \ mkdir -p "$(DESTDIR)$$module_dir" && \ - cp "$(PROG)" "$(DESTDIR)$$module_dir/" && \ - if test -z "$(DESTDIR)"; then \ - unset GTK_PATH GTK_IM_MODULE_FILE; \ - $(GTK_QUERY_IMMODULES) --update-cache; \ - fi + cp "$(PROG)" "$(DESTDIR)$$module_dir/" && $(REFRESH) uninstall: - module_dir="$(GTK_MODULE_DIR)"; \ - test -n "$$module_dir" || { \ - echo "cannot find GTK 3 module directory; set GTK_MODULE_DIR" >&2; \ - exit 1; \ - }; \ - rm -f "$(DESTDIR)$$module_dir/$(PROG)" && \ - if test -z "$(DESTDIR)"; then \ - unset GTK_PATH GTK_IM_MODULE_FILE; \ - $(GTK_QUERY_IMMODULES) --update-cache; \ - fi + module_dir="$(GTK_MODULE_DIR)"; $(CHECKDIR); \ + rm -f "$(DESTDIR)$$module_dir/$(PROG)" && $(REFRESH) clean: rm -f $(PROG)