Simplify build system

This commit is contained in:
2026-08-12 14:23:41 +09:00
parent 2ae87a3926
commit 5ae0945015
129 changed files with 161 additions and 50148 deletions

View File

@@ -1,40 +1,53 @@
CC = 9c
LD = 9l
PKGGOALS := $(filter-out check test verify-map clean xim bench,$(MAKECMDGOALS))
ifeq ($(MAKECMDGOALS),)
PKGGOALS := all
endif
ifneq ($(PKGGOALS),)
DBUS_CFLAGS := $(shell pkg-config --cflags dbus-1)
DBUS_LIBS := $(shell pkg-config --libs dbus-1)
WL_CFLAGS := $(shell pkg-config --cflags wayland-client xkbcommon)
WL_LIBS := $(shell pkg-config --libs wayland-client xkbcommon)
endif
CFLAGS = -Wall -Wextra -O2 -g $(DBUS_CFLAGS) $(WL_CFLAGS)
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 bench
all: $(PROG) xim gtk
$(PROG): $(OBJS)
$(LD) -o $@ $(OBJS) -lthread -lString -lbio -lxcb -lm $(DBUS_LIBS) $(WL_LIBS)
$(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:
@@ -45,4 +58,4 @@ verify-map:
python3 -B map/mkemoji | cmp - map/emoji.dict
python3 -B tests/mkemoji_test.py
.PHONY: all check test verify-map clean xim bench
.PHONY: all check test verify-map clean xim gtk bench docker docker-check