CC = 9c LD = 9l PKG_CFLAGS = $(shell pkg-config --cflags dbus-1 xkbcommon) PKG_LIBS = $(shell pkg-config --libs dbus-1 xkbcommon) XIM_CFLAGS = $(shell pkg-config --cflags xcb-imdkit xkbcommon) XIM_LIBS = $(shell pkg-config --libs xcb-imdkit xkbcommon) TEXT_CFLAGS = $(shell pkg-config --cflags pangocairo cairo) TEXT_LIBS = $(shell pkg-config --libs pangocairo cairo) CFLAGS = -Wall -Wextra -O2 -g $(PKG_CFLAGS) PROG = strans DOCKER_IMAGE = strans-build DOCKER_RUN = docker run --rm --user "$$(id -u):$$(id -g)" \ -v "$(CURDIR):/src" $(DOCKER_IMAGE) SRCS = dict.c font.c hash.c ibus.c ipc.c ko.c main.c popup_layout.c \ srv.c str.c strans.c trie.c vi.c win.c XIMSRCS = xim/xim.c xim/keymap.c xim/ximtext.c XIMOBJS = $(XIMSRCS:.c=.o) OBJS = $(SRCS:.c=.o) $(XIMOBJS) all: $(PROG) gtk $(PROG): $(OBJS) $(LD) -o $@ $(OBJS) -lthread -lbio -lxcb $(PKG_LIBS) $(TEXT_LIBS) \ $(XIM_LIBS) $(OBJS): dat.h fn.h ipc.h font.o: CFLAGS += $(TEXT_CFLAGS) $(XIMOBJS): CFLAGS += -I. $(XIM_CFLAGS) clean: rm -f $(OBJS) $(PROG) $(MAKE) -C tests clean $(MAKE) -C xim/ clean $(MAKE) -C gtk/ clean $(MAKE) -C bench/ clean gtk: $(MAKE) -C gtk/ bench: $(MAKE) -C bench/ docker-image: Dockerfile docker build -t $(DOCKER_IMAGE) - < Dockerfile docker-build: $(DOCKER_RUN) make -B all docker-check: $(DOCKER_RUN) make -B check TESTARGS="$(TESTARGS)" docker-bench: $(DOCKER_RUN) make -B bench docker: docker-image $(MAKE) docker-build check: verify-map test $(MAKE) -C xim check test: $(PROG) $(MAKE) -C tests check TESTARGS="$(TESTARGS)" verify-map: python3 map/mktelex.py | cmp - map/telex.map python3 -B map/mkemoji | cmp - map/emoji.dict python3 -B map/mkhanja | cmp - map/hanja.dict python3 -B map/verifymap.py map/*.map map/*.dict python3 -B tests/mkemoji_test.py python3 -B tests/mkhanja_test.py python3 -B tests/skk2ktrans_test.py .PHONY: all check test verify-map clean gtk bench docker docker-image \ docker-build docker-check docker-bench