summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/make/force-reconfigure1
-rw-r--r--lib/make/make.config.rules.in13
2 files changed, 9 insertions, 5 deletions
diff --git a/lib/make/force-reconfigure b/lib/make/force-reconfigure
index dbac1c08..731c340e 100644
--- a/lib/make/force-reconfigure
+++ b/lib/make/force-reconfigure
@@ -31,3 +31,4 @@
26 Apr 2011: Add CCTK_BUILTIN_EXPECT
27 Jun 2011: Add HAVE_SCHED_H
01 May 2012: Add OpenCL support
+15 Jul 2012: Correct error in determining make dependencies
diff --git a/lib/make/make.config.rules.in b/lib/make/make.config.rules.in
index 0d8d2db6..9e292d06 100644
--- a/lib/make/make.config.rules.in
+++ b/lib/make/make.config.rules.in
@@ -59,16 +59,19 @@ define NOTIFY_DIVIDER
endef
endif
-# Define how to do dependencies
+# Define how to do dependencies.
+# Correct the dependency target (i.e. the item on the LHS of a make
+# rule). The name of the object file is wrong, and the dependency file
+# (.d file) is missing. To simplify things, we don't try to match the
+# object file name -- we assume that any file ending in .o is the
+# object file.
ifeq ($(strip $(PERL_BACKUP_NECESSARY)),)
define DEPENDENCY_FIXER
- #$(PERL) -pi -e "s,([^:]*),$(basename $@).o $(basename $@).d, if(m/: /);\
- s:\s+\S*[/\\\]($(DEP_EXCLUDE_FILES))\b::g" $@
+ $(PERL) -pi -e 's{^\Q$(basename $(basename $@)).o:\E}{$(basename $@).o $(basename $@).d:}' $@
endef
else
define DEPENDENCY_FIXER
- #$(PERL) -pi.bak -e "s,([^:]*),$(basename $@).o $(basename $@).d, if(m/: /);\
- s:\s+\S*[/\\\]($(DEP_EXCLUDE_FILES))\b::g" $@
+ $(PERL) -pi.bak -e 's{^\Q$(basename $(basename $@)).o:\E}{$(basename $@).o $(basename $@).d:}' $@
rm $@.bak
endef
endif