mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
rules.mak: fix $(obj) to a real relative path
Makefile.target includes rule.mak and unnested common-obj-y, then prefix
them with '../', this will ignore object specific QEMU_CFLAGS in subdir
Makefile.objs:
$(obj)/curl.o: QEMU_CFLAGS += $(CURL_CFLAGS)
Because $(obj) here is './block', instead of '../block'. This doesn't
hurt compiling because we basically build all .o from top Makefile,
before entering Makefile.target, but it will affact arriving per-object
libs support.
The starting point of $(obj) is passed in as argument of unnest-vars, as
well as nested variables, so that different Makefiles can pass in a
right value.
Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
10f5bff622
commit
ba1183da9a
5 changed files with 38 additions and 25 deletions
14
rules.mak
14
rules.mak
|
|
@ -146,9 +146,6 @@ clean: clean-timestamp
|
|||
|
||||
# magic to descend into other directories
|
||||
|
||||
obj := .
|
||||
old-nested-dirs :=
|
||||
|
||||
define push-var
|
||||
$(eval save-$2-$1 = $(value $1))
|
||||
$(eval $1 :=)
|
||||
|
|
@ -162,9 +159,11 @@ endef
|
|||
|
||||
define unnest-dir
|
||||
$(foreach var,$(nested-vars),$(call push-var,$(var),$1/))
|
||||
$(eval obj := $(obj)/$1)
|
||||
$(eval obj-parent-$1 := $(obj))
|
||||
$(eval obj := $(if $(obj),$(obj)/$1,$1))
|
||||
$(eval include $(SRC_PATH)/$1/Makefile.objs)
|
||||
$(eval obj := $(patsubst %/$1,%,$(obj)))
|
||||
$(eval obj := $(obj-parent-$1))
|
||||
$(eval obj-parent-$1 := )
|
||||
$(foreach var,$(nested-vars),$(call pop-var,$(var),$1/))
|
||||
endef
|
||||
|
||||
|
|
@ -179,7 +178,12 @@ $(if $(nested-dirs),
|
|||
endef
|
||||
|
||||
define unnest-vars
|
||||
$(eval obj := $1)
|
||||
$(eval nested-vars := $2)
|
||||
$(eval old-nested-dirs := )
|
||||
$(call unnest-vars-1)
|
||||
$(if $1,$(foreach v,$(nested-vars),$(eval \
|
||||
$v := $(addprefix $1/,$($v)))))
|
||||
$(foreach var,$(nested-vars),$(eval $(var) := $(filter-out %/, $($(var)))))
|
||||
$(shell mkdir -p $(sort $(foreach var,$(nested-vars),$(dir $($(var))))))
|
||||
$(foreach var,$(nested-vars), $(eval \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue