mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-09 19:37:27 -03:00
depends: Propagate only specific CLI variables to sub-makes
We want to supply well-known vars to ./configure scripts to do with as they please. However, we do _not_ want to override these well-known vars at make-time as certain build systems expect a self-mangled version of these well-known vars. For example, freetype and bdb will prepend `libtool --mode=compile' to CC and CXX, which, if we override CC on the command line at make-time, will break the build.
This commit is contained in:
parent
0a33803f1c
commit
f0d7ed10b4
1 changed files with 24 additions and 0 deletions
|
@ -4,6 +4,30 @@
|
|||
print-%:
|
||||
@echo $* = $($*)
|
||||
|
||||
# When invoking a sub-make, keep only the command line variable definitions
|
||||
# matching the pattern in the filter function.
|
||||
#
|
||||
# e.g. invoking:
|
||||
# $ make A=1 C=1 print-MAKEOVERRIDES print-MAKEFLAGS
|
||||
#
|
||||
# with the following in the Makefile:
|
||||
# MAKEOVERRIDES := $(filter A=% B=%,$(MAKEOVERRIDES))
|
||||
#
|
||||
# will print:
|
||||
# MAKEOVERRIDES = A=1
|
||||
# MAKEFLAGS = -- A=1
|
||||
#
|
||||
# this is because as the GNU make manual says:
|
||||
# The command line variable definitions really appear in the variable
|
||||
# MAKEOVERRIDES, and MAKEFLAGS contains a reference to this variable.
|
||||
#
|
||||
# and since the GNU make manual also says:
|
||||
# variables defined on the command line are passed to the sub-make through
|
||||
# MAKEFLAGS
|
||||
#
|
||||
# this means that sub-makes will be invoked as if:
|
||||
# $(MAKE) A=1 blah blah
|
||||
MAKEOVERRIDES := $(filter V=%,$(MAKEOVERRIDES))
|
||||
SOURCES_PATH ?= $(BASEDIR)/sources
|
||||
WORK_PATH = $(BASEDIR)/work
|
||||
BASE_CACHE ?= $(BASEDIR)/built
|
||||
|
|
Loading…
Reference in a new issue