62 lines
1.5 KiB
Makefile
62 lines
1.5 KiB
Makefile
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
|
|
|
|
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 tests/mkemoji_test.py
|
|
|
|
.PHONY: all check test verify-map clean xim gtk bench docker docker-check
|