From: Timo Korvola Date: Tue, 27 Mar 2018 18:07:28 +0000 (+0300) Subject: Improved dependency management. X-Git-Url: https://scope-eye.net/git/?a=commitdiff_plain;h=dd5ddea74270cf819d127cb3568bb3bc0d905ac2;p=liskon_frotz.git Improved dependency management. Adapted (simplified) from http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/ --- diff --git a/src/sdl/Makefile b/src/sdl/Makefile index 459a9ae..c32a521 100644 --- a/src/sdl/Makefile +++ b/src/sdl/Makefile @@ -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))