main uint/cterm / libmaus / Makefile
 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