summaryrefslogtreecommitdiff
path: root/lib/make/make.config.rules.in
diff options
context:
space:
mode:
Diffstat (limited to 'lib/make/make.config.rules.in')
-rw-r--r--lib/make/make.config.rules.in13
1 files changed, 8 insertions, 5 deletions
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