Simplify build system
This commit is contained in:
41
Makefile
41
Makefile
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user