When in automatic dependency mode, never delete any intermediate

files automatically.  Otherwise, the following could happen: When
starting from a clean source tree, the first build would delete the
intermediate file, but also create the dependency file, which
mentions the intermediate file, thus making it non-intermediate.
The second build will then need to rebuild the now non-intermediate
missing file.  So the second build will do work even though nothing
had changed.  One place where this happens is the .c -> .o -> .so
chain for some contrib modules.
This commit is contained in:
Peter Eisentraut 2010-08-24 18:06:12 +00:00
parent b1e2e9c1ef
commit 5c788e7cf5
1 changed files with 12 additions and 1 deletions

View File

@ -1,5 +1,5 @@
# -*-makefile-*-
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.264 2010/07/06 22:03:05 tgl Exp $
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.265 2010/08/24 18:06:12 petere Exp $
#------------------------------------------------------------------------------
# All PostgreSQL makefiles include this file and use the variables it sets,
@ -580,6 +580,17 @@ clean distclean maintainer-clean: clean-deps
clean-deps:
@rm -rf $(DEPDIR)
# When in automatic dependency mode, never delete any intermediate
# files automatically. Otherwise, the following could happen: When
# starting from a clean source tree, the first build would delete the
# intermediate file, but also create the dependency file, which
# mentions the intermediate file, thus making it non-intermediate.
# The second build will then need to rebuild the now non-intermediate
# missing file. So the second build will do work even though nothing
# had changed. One place where this happens is the .c -> .o -> .so
# chain for some contrib modules.
.SECONDARY:
endif # autodepend