Files
strans/Makefile

76 lines
1.9 KiB
Makefile

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) gtk
$(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