From 482b094a794c56a2052be81fdb50d3da1e87d15d Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Tue, 3 Oct 2017 12:32:05 -0400 Subject: 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. --- Makefile | 24 +++++++++--------------- 1 file 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 -- cgit 1.4.1