From bbe24fa8d43debd8646f0a9294e7a89414dee8ac Mon Sep 17 00:00:00 2001
From: "Devin J. Pohly" <djpohly@gmail.com>
Date: Sat, 11 Apr 2020 20:17:20 -0500
Subject: make Makefile a bit more my style

---
 Makefile | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/Makefile b/Makefile
index 818686c..f4018cb 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,13 @@
 WAYLAND_PROTOCOLS=$(shell pkg-config --variable=pkgdatadir wayland-protocols)
 WAYLAND_SCANNER=$(shell pkg-config --variable=wayland_scanner wayland-scanner)
-LIBS=\
-	 $(shell pkg-config --cflags --libs wlroots) \
-	 $(shell pkg-config --cflags --libs wayland-server) \
-	 $(shell pkg-config --cflags --libs xkbcommon)
+
+CFLAGS ?= -g
+CFLAGS += -Werror -I. -DWLR_USE_UNSTABLE
+
+PKGS = wlroots wayland-server xkbcommon
+CFLAGS += $(foreach p,$(PKGS),$(shell pkg-config --cflags $(p)))
+LDLIBS += $(foreach p,$(PKGS),$(shell pkg-config --libs $(p)))
+
 
 # wayland-scanner is a tool which generates C headers and rigging for Wayland
 # protocols, which are specified in XML. wlroots requires you to rig these up
@@ -12,19 +16,18 @@ xdg-shell-protocol.h:
 	$(WAYLAND_SCANNER) server-header \
 		$(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@
 
-xdg-shell-protocol.c: xdg-shell-protocol.h
+xdg-shell-protocol.c:
 	$(WAYLAND_SCANNER) private-code \
 		$(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@
 
-dwl: dwl.c config.h xdg-shell-protocol.h xdg-shell-protocol.c
-	$(CC) $(CFLAGS) \
-		-g -Werror -I. \
-		-DWLR_USE_UNSTABLE \
-		-o $@ $< \
-		$(LIBS)
+xdg-shell-protocol.o: xdg-shell-protocol.h
+
+dwl.o: config.h xdg-shell-protocol.h
+
+dwl: xdg-shell-protocol.o
 
 clean:
-	rm -f dwl xdg-shell-protocol.h xdg-shell-protocol.c
+	rm -f dwl *.o xdg-shell-protocol.h xdg-shell-protocol.c
 
 .DEFAULT_GOAL=dwl
 .PHONY: clean
-- 
cgit v1.2.3