From: Christian Heller Date: Wed, 19 Jun 2013 03:53:49 +0000 (+0200) Subject: Added descriptive comments to Makefile voodoo. X-Git-Tag: tce~1211 X-Git-Url: https://plomlompom.com/repos/te"st.html?a=commitdiff_plain;h=cf8388a311ebd1e8d99559e33c2f3af37de41138;p=plomrogue Added descriptive comments to Makefile voodoo. --- diff --git a/Makefile b/Makefile index 69eb0a9..56a158c 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,24 @@ -CC=cc -CFLAGS=-Wall -g TARGET=roguelike SRCDIR=src BUILDDIR=build +CC=gcc +CFLAGS=-Wall -g + +# Use all .c files below SRCDIR for sources. Build object file paths by +# replacing SRCDIR with BUILDDIR and .c endings with .o endings. SOURCES=$(shell find $(SRCDIR)/ -type f -name \*.c) OBJECTS=$(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.c=.o)) -roguelike: $(OBJECTS) +# Linking TARGET demands generation of all OBJECTS files. To build them, +# rely on this rule: Each file of path BUILDDIR/[name].o is compiled +# from a file of path SRCDIR/[name].c. Build BUILDDIR as needed. +$(TARGET): $(OBJECTS) $(CC) $(CFLAGS) -o roguelike $(OBJECTS) -lncurses - $(BUILDDIR)/%.o: $(SRCDIR)/%.c mkdir -p $(BUILDDIR); $(CC) $(CFLAGS) -c $< -o $@ +# Use "clean" to delete build and target files. Tell make that "clean" +# is a "phony" target, i.e. this is not about building a file. .PHONY: clean clean: rm $(OBJECTS)