Don't include deps during 'make clean'.
authorRalph Giles <giles@thaumas.net>
Mon, 17 Sep 2012 16:12:28 +0000 (09:12 -0700)
committerRalph Giles <giles@thaumas.net>
Mon, 17 Sep 2012 16:12:28 +0000 (09:12 -0700)
If a source file moves (as in the previous commit), any stale
dependencies will block execution of 'make' because they
define a dependency relationship to an non-existant file.

The obvious thing to do is 'make clean' to get rid of the
dependency files, but of course that fails the same way.
To support this recovery, skip the include directive if
the GNU make variable MAKECMDGOALS is 'clean', exempting
this target from dependency checks.

Based on an example in the GNU make manual.

unix/Makefile

index a9c921f..b0eafd3 100644 (file)
@@ -178,5 +178,7 @@ ${WORKDIR}/%.o : ${BINSRCDIR}/%.c
        mkdir -p ${dir $@}
        ${CC} ${CINCLUDE} ${CFLAGS} -c -o $@ $<
 
-# Include header file dependencies
+# Include header file dependencies, except when cleaning
+ifneq ($(MAKECMDGOALS),clean)
 include ${ALL_DEPS}
+endif