diff --git a/Makefile b/Makefile index a860218746..2c0ac231fe 100644 --- a/Makefile +++ b/Makefile @@ -109,10 +109,11 @@ endif # Include some helper macros and variables include support/misc/utils.mk +# Set O variable if not already done on the command line; +# or avoid confusing packages that can use the O= syntax for out-of-tree +# build by preventing it from being forwarded to sub-make calls. ifneq ("$(origin O)", "command line") O := output -CONFIG_DIR := $(TOPDIR) -NEED_WRAPPER = else # other packages might also support Linux-style out of tree builds # with the O= syntax (E.G. BusyBox does). As make automatically @@ -125,9 +126,16 @@ MAKEOVERRIDES = # Unfortunately some packages don't look at origin (E.G. uClibc 0.9.31+) # To really make O go away, we have to override it. override O := $(O) -CONFIG_DIR := $(O) # we need to pass O= everywhere we call back into the toplevel makefile EXTRAMAKEARGS = O=$(O) +endif + +# Set variables related to in-tree or out-of-tree build. +ifeq ($(O),output) +CONFIG_DIR := $(TOPDIR) +NEED_WRAPPER = +else +CONFIG_DIR := $(O) NEED_WRAPPER = y endif