84 lines
3.0 KiB
Makefile
84 lines
3.0 KiB
Makefile
HEADERS_src_l1 := $(shell find src/l1 -type f -name '*.h')
|
|
HEADERS_gen_l1 := $(shell find gen/l1 -type f -name '*.h') essence_gen_l1
|
|
|
|
HEADERS_src_l2 := $(shell find src/l2 -type f -name '*.h')
|
|
HEADERS_gen_l2 := $(shell find gen/l2 -type f -name '*.h') essence_gen_l2
|
|
|
|
HEADERS_src_l3 := $(shell find src/l3 -type f -name '*.h')
|
|
|
|
cflags := -Wall -Wextra -Werror=implicit-function-declaration -Werror=return-type --std=c99 -g -ggdb -O0 \
|
|
-fno-trapping-math -D_POSIX_C_SOURCE=200112L -D_GNU_SOURCE
|
|
cc := gcc
|
|
|
|
wl_protocols := $(shell pkg-config --variable=pkgdatadir wayland-protocols)
|
|
libpipewire_flags := $(shell pkg-config --cflags --libs libpipewire-0.3)
|
|
|
|
out/l1/codegen: src/l1/codegen/codegen.c $(HEADERS_src_l1)
|
|
mkdir -p out/l1
|
|
$(cc) $(cflags) -D PROTOTYPE1_L1_CODEGEN_BOOTSTRAP_USE_CHICKEN_VECU8 -o $@ $<
|
|
|
|
.PHONY: essence_gen_l1
|
|
essence_gen_l1: out/l1/codegen
|
|
mkdir -p gen
|
|
cd gen && ../out/l1/codegen
|
|
|
|
|
|
out/l1/t0: src/l1/tests/t0.c $(HEADERS_gen_l1) $(HEADERS_src_l1)
|
|
mkdir -p out/l1
|
|
$(cc) $(cflags) -o $@ $<
|
|
|
|
out/l1/t1: src/l1/tests/t1.c $(HEADERS_gen_l1) $(HEADERS_src_l1)
|
|
mkdir -p out/l1
|
|
$(cc) $(cflags) -o $@ $<
|
|
|
|
|
|
|
|
|
|
out/l2/codegen: src/l2/codegen/codegen.c $(HEADERS_src_l2) $(HEADERS_gen_l1) $(HEADERS_src_l1)
|
|
mkdir -p out/l2
|
|
$(cc) $(cflags) -o $@ $<
|
|
|
|
.PHONY: essence_gen_l2
|
|
essence_gen_l2: out/l2/codegen
|
|
mkdir -p gen
|
|
cd gen && ../out/l2/codegen
|
|
|
|
gen/l_wl_protocols/xdg-shell-client.h: $(wl_protocols)/stable/xdg-shell/xdg-shell.xml
|
|
mkdir -p gen/l_wl_protocols
|
|
wayland-scanner client-header $< $@
|
|
|
|
gen/l_wl_protocols/xdg-shell-private.c: $(wl_protocols)/stable/xdg-shell/xdg-shell.xml
|
|
mkdir -p gen/l_wl_protocols
|
|
wayland-scanner private-code $< $@
|
|
|
|
l_wl_protocols := gen/l_wl_protocols/xdg-shell-client.h gen/l_wl_protocols/xdg-shell-private.c
|
|
|
|
out/l2/r0: src/l2/tests/r0/r0.c $(HEADERS_gen_l2) $(HEADERS_src_l2) $(HEADERS_gen_l1) $(HEADERS_src_l1) \
|
|
$(l_wl_protocols)
|
|
mkdir -p out/l2
|
|
$(cc) $(cflags) -o $@ $< gen/l_wl_protocols/xdg-shell-private.c -lvulkan -lm -lxkbcommon -lwayland-client
|
|
|
|
out/l2/r1: src/l2/tests/r1/r1.c $(HEADERS_gen_l2) $(HEADERS_src_l2) $(HEADERS_gen_l1) $(HEADERS_src_l1) \
|
|
$(l_wl_protocols)
|
|
mkdir -p out/l2
|
|
$(cc) $(cflags) -o $@ $< gen/l_wl_protocols/xdg-shell-private.c -lwayland-client -lrt -lxkbcommon -lm
|
|
|
|
out/l2/r2a: src/l2/tests/r2/r2a.c $(HEADERS_gen_l2) $(HEADERS_src_l2) $(HEADERS_gen_l1) $(HEADERS_src_l1) \
|
|
$(l_wl_protocols)
|
|
mkdir -p out/l2
|
|
$(cc) $(cflags) -o $@ $< gen/l_wl_protocols/xdg-shell-private.c -lwayland-client -lrt -lxkbcommon -lm $(libpipewire_flags)
|
|
|
|
out/l2/r2b: src/l2/tests/r2/r2b.c $(HEADERS_gen_l2) $(HEADERS_src_l2) $(HEADERS_gen_l1) $(HEADERS_src_l1)
|
|
mkdir -p out/l2
|
|
$(cc) $(cflags) -o $@ $< -lwayland-client -lrt -lxkbcommon -lm $(libpipewire_flags)
|
|
|
|
out/l2/r3: src/l2/tests/r3/r3.c $(HEADERS_gen_l2) $(HEADERS_src_l2) $(HEADERS_gen_l1) $(HEADERS_src_l1) \
|
|
$(l_wl_protocols)
|
|
mkdir -p out/l2
|
|
$(cc) $(cflags) -o $@ $< gen/l_wl_protocols/xdg-shell-private.c -lwayland-client -lrt -lxkbcommon -lm -lvulkan
|
|
|
|
clean:
|
|
rm -rf gen out
|
|
|
|
.PHONY: clean
|