Improved dependency management.
authorTimo Korvola <tkorvola@iki.fi>
Tue, 27 Mar 2018 18:07:28 +0000 (21:07 +0300)
committerTimo Korvola <tkorvola@iki.fi>
Tue, 27 Mar 2018 19:06:43 +0000 (22:06 +0300)
Adapted (simplified) from
http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/

src/sdl/Makefile

index 459a9ae377ee34943d57bebc52ae0e97dffc212d..c32a521e3473e8d62471f975d9bc3dc6b97e811c 100644 (file)
@@ -2,6 +2,8 @@
 
 SDL_PKGS ?= libpng libjpeg sdl SDL_mixer freetype2 zlib
 
+# Dependency generation requires GCC.
+CC = gcc
 CFLAGS += `pkg-config $(SDL_PKGS) --cflags`
 
 SOURCES = sf_fonts.c sf_msg_en.c sf_resource.c sf_util.c \
@@ -12,9 +14,11 @@ HEADERS = samplerate.h  sf_frotz.h
 
 OBJECTS = $(SOURCES:.c=.o)
 
+DEPS = $(SOURCES:.c=.d)
+
 TARGET = frotz_sdl.a
 
-.PHONY: clean distclean
+.PHONY: clean
 .DELETE_ON_ERROR:
 
 $(TARGET): $(OBJECTS)
@@ -22,7 +26,12 @@ $(TARGET): $(OBJECTS)
        ranlib $@
 
 clean:
-       rm -f $(TARGET) $(OBJECTS)
+       -rm -f $(TARGET) $(OBJECTS) $(DEPS)
 
 %.o: %.c
-       $(CC) $(CFLAGS) -fPIC -fpic -o $@ -c $<
+%.o: %.c %.d
+       $(CC) -MMD -MF $*.d $(CFLAGS) -c $<
+
+$(DEPS):;
+
+include $(wildcard $(DEPS))