CC = 9c LD = 9l PKG_CFLAGS = $(shell pkg-config --cflags dbus-1 wayland-client xkbcommon) PKG_LIBS = $(shell pkg-config --libs dbus-1 wayland-client xkbcommon) CFLAGS = -Wall -Wextra -O2 -g $(PKG_CFLAGS) PROG = strans DOCKER_IMAGE = strans-build SRCS = $(wildcard *.c) OBJS = $(SRCS:.c=.o) all: $(PROG) xim gtk $(PROG): $(OBJS) $(LD) -o $@ $(OBJS) -lthread -lString -lbio -lxcb -lm $(PKG_LIBS) $(OBJS): dat.h fn.h ipc.h # Avoid Arch's GLIBC_2.43 sqrtf optimization for older glibc runtimes. font.o: CFLAGS += -fno-builtin-sqrt font.o: stb_truetype.h wayland.o: input-method-unstable-v2-client-protocol.h \ virtual-keyboard-unstable-v1-client-protocol.h clean: rm -f $(OBJS) $(PROG) $(MAKE) -C tests clean $(MAKE) -C xim/ clean $(MAKE) -C gtk/ clean $(MAKE) -C bench/ clean xim: $(MAKE) -C xim/ gtk: $(MAKE) -C gtk/ bench: $(MAKE) -C bench/ docker: Dockerfile docker build -t $(DOCKER_IMAGE) - < Dockerfile docker run --rm --user "$$(id -u):$$(id -g)" \ -v "$(CURDIR):/src" $(DOCKER_IMAGE) \ sh -c 'make clean && make all' docker-check: docker docker run --rm --user "$$(id -u):$$(id -g)" \ -e TESTARGS="$(TESTARGS)" -v "$(CURDIR):/src" \ $(DOCKER_IMAGE) make check check: verify-map test $(MAKE) -C xim check test: $(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/verifymap.py map/*.map map/*.dict python3 -B tests/mkemoji_test.py python3 -B tests/skk2ktrans_test.py .PHONY: all check test verify-map clean xim gtk bench docker docker-check