summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorJune McEnroe <programble@gmail.com>2017-10-03 12:32:05 -0400
committerJune McEnroe <programble@gmail.com>2017-10-03 12:32:05 -0400
commit482b094a794c56a2052be81fdb50d3da1e87d15d (patch)
tree7f40fb2c9397e249f9b438a83c41e41ad387642e
parentRemove leading blank lines (diff)
downloadtorus-482b094a794c56a2052be81fdb50d3da1e87d15d.tar.gz
torus-482b094a794c56a2052be81fdb50d3da1e87d15d.zip
Simplify Makefile with pattern rule
Insert rant about how GNU make handles the .c rule with extra
dependencies.

Also I don't care that everything links curses now.
-rw-r--r--Makefile24
1 files changed, 9 insertions, 15 deletions
diff --git a/Makefile b/Makefile
index 0be6b77..14d4506 100644
--- a/Makefile
+++ b/Makefile
@@ -1,21 +1,15 @@
 USER = torus
+BINS = server client help meta merge
+CFLAGS += -Wall -Wextra -Wpedantic
+LDLIBS = -lcurses
 
-all: server client help meta merge
+all: $(BINS)
 
-server: server.c torus.h
-	$(CC) -Wall -Wextra -Wpedantic $(CFLAGS) -o server server.c
+$(BINS): torus.h
 
-client: client.c torus.h
-	$(CC) -Wall -Wextra -Wpedantic $(CFLAGS) -lcurses -o client client.c
-
-help: help.c torus.h
-	$(CC) -Wall -Wextra -Wpedantic $(CFLAGS) -o help help.c
-
-meta: meta.c torus.h
-	$(CC) -Wall -Wextra -Wpedantic $(CFLAGS) -o meta meta.c
-
-merge: merge.c torus.h
-	$(CC) -Wall -Wextra -Wpedantic $(CFLAGS) -lcurses -o merge merge.c
+# Only necessary so GNU make doesn't try to use torus.h as a source.
+.c:
+	$(CC) $(CFLAGS) $(LDFLAGS) $< $(LDLIBS) -o $@
 
 termcap: termcap.diff
 	patch -p0 -o termcap < termcap.diff
@@ -47,6 +41,6 @@ chroot.tar: server client help termcap.db
 	tar -c -f chroot.tar -C root bin home lib libexec usr
 
 clean:
-	rm -f server client help meta merge termcap termcap.db chroot.tar
+	rm -f $(BINS) termcap termcap.db chroot.tar
 
 .PHONY: all clean