1.POSIX:
2
3include config.mk
4
5CC = cc
6AR = ar
7ARFLAGS = -r -c
8CFLAGS = -ansi -pedantic-errors -Wall -Wextra -O2
9WL_CFLAGS = -std=c99 -Wall -Wextra -O2
10CPPFLAGS = ${CONF_CPPFLAGS} -Iinclude -Ibuild
11LDFLAGS = ${CONF_LDFLAGS}
12
13LIB_NAME = build/${CONF_LIB_NAME}
14LIB_SRCS = source/maus.c \
15 source/maus_font.c \
16 source/utils.c \
17 ${CONF_SRC}
18LIB_OBJS = build/maus.o \
19 build/maus_font.o \
20 build/utils.o \
21 ${CONF_OBJS}
22
23all: ${LIB_NAME}
24
25${LIB_NAME}: ${LIB_OBJS}
26 ${AR} ${ARFLAGS} $@ ${LIB_OBJS}
27
28build/maus.o: source/maus.c include/maus.h config.mk
29 mkdir -p build
30 ${CC} ${CFLAGS} ${CPPFLAGS} -c source/maus.c -o $@
31build/maus_font.o: source/maus_font.c include/maus.h include/maus_font.h config.mk
32 mkdir -p build
33 ${CC} ${CFLAGS} ${CPPFLAGS} -c source/maus_font.c -o $@
34build/utils.o: source/utils.c include/utils.h
35 mkdir -p build
36 ${CC} ${CFLAGS} ${CPPFLAGS} -c source/utils.c -o $@
37
38# X11
39build/maus_x11.o: source/maus_x11.c include/maus.h include/maus_x11.h config.mk
40 mkdir -p build
41 ${CC} ${CFLAGS} ${CPPFLAGS} -c source/maus_x11.c -o $@
42
43# Wayland
44build/maus_wayland.o: source/maus_wayland.c include/maus.h include/maus_wayland.h build/xdg-shell-client-protocol.h build/pointer-constraints-unstable-v1-client-protocol.h build/relative-pointer-unstable-v1-client-protocol.h config.mk
45 mkdir -p build
46 ${CC} ${WL_CFLAGS} ${CPPFLAGS} -c source/maus_wayland.c -o $@
47build/xdg-shell-client-protocol.h:
48 mkdir -p build
49 wayland-scanner client-header ${PROTOS}/stable/xdg-shell/xdg-shell.xml $@
50build/xdg-shell-protocol.c:
51 mkdir -p build
52 wayland-scanner private-code ${PROTOS}/stable/xdg-shell/xdg-shell.xml $@
53build/xdg-shell-protocol.o: build/xdg-shell-protocol.c build/xdg-shell-client-protocol.h
54 mkdir -p build
55 ${CC} ${WL_CFLAGS} ${CPPFLAGS} -c build/xdg-shell-protocol.c -o $@
56build/pointer-constraints-unstable-v1-client-protocol.h:
57 mkdir -p build
58 wayland-scanner client-header ${PROTOS}/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml $@
59build/pointer-constraints-unstable-v1-protocol.c:
60 mkdir -p build
61 wayland-scanner private-code ${PROTOS}/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml $@
62build/pointer-constraints-unstable-v1-protocol.o: build/pointer-constraints-unstable-v1-protocol.c build/pointer-constraints-unstable-v1-client-protocol.h
63 mkdir -p build
64 ${CC} ${WL_CFLAGS} ${CPPFLAGS} -c build/pointer-constraints-unstable-v1-protocol.c -o $@
65build/relative-pointer-unstable-v1-client-protocol.h:
66 mkdir -p build
67 wayland-scanner client-header ${PROTOS}/unstable/relative-pointer/relative-pointer-unstable-v1.xml $@
68build/relative-pointer-unstable-v1-protocol.c:
69 mkdir -p build
70 wayland-scanner private-code ${PROTOS}/unstable/relative-pointer/relative-pointer-unstable-v1.xml $@
71build/relative-pointer-unstable-v1-protocol.o: build/relative-pointer-unstable-v1-protocol.c build/relative-pointer-unstable-v1-client-protocol.h
72 mkdir -p build
73 ${CC} ${WL_CFLAGS} ${CPPFLAGS} -c build/relative-pointer-unstable-v1-protocol.c -o $@
74
75clean:
76 rm -rf build ${LIB_NAME} config.mk compile_flags.txt
77
78compile_flags:
79 rm -f compile_flags.txt
80 for f in ${CFLAGS} ${CPPFLAGS}; do echo $$f >> compile_flags.txt; done
81
82.PHONY: all clean compile_flags
83