Handle absolute source file paths
authorPatrick Georgi <patrick@georgi-clan.de>
Fri, 20 May 2011 23:31:41 +0000 (23:31 +0000)
committerPatrick Georgi <patrick.georgi@coresystems.de>
Fri, 20 May 2011 23:31:41 +0000 (23:31 +0000)
We used to fail there because we unconditionally prefixed the relative directory where it was referenced.
Tested in various scenarios:
- obj=build
- obj=../obj
- obj=$PWD/../obj
- obj=/some/other/absolute/path
- obj=/./some/other/absolute/path

In-tree relative paths still work as before, the only change in behaviour is when a source file name (as specified in one of the *-y variables) starts with "/".

Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Acked-by: Patrick Georgi <patrick@georgi-clan.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6606 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

Makefile

index 33e35738bb57b57ee4b73be9d519dd69a3569134..04fbb026128333350c8343e76b76560f8f3a2c2d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -176,7 +176,7 @@ includemakefiles= \
        $(foreach class,$(classes), \
                $(eval $(class)-srcs+= \
                        $$(subst $(top)/,, \
-                       $$(abspath $$(addprefix $(dir $(1)),$$($(class)-y)))))) \
+                       $$(abspath $$(subst $(dir $(1))/,/,$$(addprefix $(dir $(1)),$$($(class)-y))))))) \
        $(foreach special,$(special-classes), \
                $(foreach item,$($(special)-y), $(call $(special)-handler,$(dir $(1)),$(item)))) \
        $(eval subdirs+=$$(subst $(CURDIR)/,,$$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y)))))