On Wed, Dec 12, 2012 at 3:01 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Wed, Dec 12, 2012 at 2:13 PM, Paolo Bonzini <bonz...@gnu.org> wrote: >> Il 12/12/2012 19:11, H.J. Lu ha scritto: >>>>> >> >>>>> >> in RAW_CXX_TARGET_EXPORTS. There is no need to do anything. >>>> > >>>> > Nope, if you remove this you get the wrong definition of CC and CXX from >>>> > EXTRA_TARGET_FLAGS. Instead, you need to add RAW_CXX_FOR_TARGET to >>>> > AM_MAKEFLAGS and EXTRA_TARGET_FLAGS. >>>> > >>> We have set CXX and CXX_FOR_TARGET before EXTRA_TARGET_FLAGS >>> is used: >>> >>> RAW_CXX_TARGET_EXPORTS = \ >>> $(BASE_TARGET_EXPORTS) \ >>> CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ >>> CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; >>> export CXX; >>> >>> Shouldn't we the right CXX and CXX_FOR_TARGET? >> >> The purpose of EXTRA_TARGET_FLAGS is to forward any *_FOR_TARGET >> variable passed on the command line to the toplevel Makefile. >> > > We don't pass down RAW_CXX_FOR_TARGET from toplevel > Makefile. If one wants to change RAW_CXX_FOR_TARGET > from command line, he/she should do > > # make RAW_CXX_FOR_TARGET=xxx > > and RAW_CXX_TARGET_EXPORTS should handle it properly.
Also there are: # ------------------------------ # Special directives to GNU Make # ------------------------------ # Don't pass command-line variables to submakes. .NOEXPORT: MAKEOVERRIDES= in toplevel Makefile. How does # make *_FOR_TARGET=xxxx work at toplevel? -- H.J.