main Makefile
 1PKG_CONFIG ?= pkg-config
 2PKGS = wayland-client wld scfg
 3CLIBS  != $(PKG_CONFIG) --cflags $(PKGS)
 4LDLIBS != $(PKG_CONFIG) --libs $(PKGS)
 5
 6PREFIX = /usr/local
 7VERSION = 0.1.0
 8
 9CFLAGS += -g -O0 -Wall -Wextra -Wno-unused-parameter -pedantic -std=c99 -Oz -fcolor-diagnostics -DVERSION=\"$(VERSION)\" -D_POSIX_C_SOURCE=200809L -Iproto/ $(CLIBS)
10LDFLAGS += $(LDLIBS)
11
12SHELL_PROTO = proto/xdg-shell-protocol.h
13LAYER_PROTO = proto/wlr-layer-shell-unstable-v1.h
14
15SRC = $(SHELL_PROTO:.h=.c) $(LAYER_PROTO:.h=.c) src/panko.c
16OUT = panko
17
18all: $(SHELL_PROTO) $(SHELL_PROTO:.h=.c) $(LAYER_PROTO) $(LAYER_PROTO:.h=.c) $(OUT)
19
20# ugh
21$(SHELL_PROTO): proto/xdg-shell.xml
22	wayland-scanner client-header $^ $@
23$(SHELL_PROTO:.h=.c): proto/xdg-shell.xml
24	wayland-scanner private-code $^ $@
25$(LAYER_PROTO): proto/wlr-layer-shell-unstable-v1.xml
26	wayland-scanner client-header $^ $@
27$(LAYER_PROTO:.h=.c): proto/wlr-layer-shell-unstable-v1.xml
28	wayland-scanner private-code $^ $@
29
30$(OUT): $(SRC)
31	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
32
33install: $(OUT)
34	install -Dm755 $(OUT) $(PREFIX)/bin/$(OUT)
35
36uninstall:
37	rm -f $(PREFIX)/bin/$(OUT)
38
39clean:
40	rm -f $(SHELL_PROTO) $(SHELL_PROTO:.h=.c) $(LAYER_PROTO) $(LAYER_PROTO:.h=.c) $(OUT)
41
42.PHONY: all install uninstall clean