X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=Makefile.tpl;h=ea2676fced662b090df876e671db30a4808afc7c;hb=5da6971689202eb905ccaf894f2e9ca479263b28;hp=12ad2a1ff070ec3857aa2bcebea88e1f5f93c2c6;hpb=57c53b2bffdcc0cbfe69ce4f8fca343fa7f3be34;p=deliverable%2Fbinutils-gdb.git diff --git a/Makefile.tpl b/Makefile.tpl index 12ad2a1ff0..ea2676fced 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -23,6 +23,14 @@ in # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # +# First, test for a proper version of make, but only where one is required. + +@if gcc +ifeq (,$(.VARIABLES)) # The variable .VARIABLES, new with 3.80, is never empty. +$(error GNU make version 3.80 or newer is required.) +endif +@endif gcc + # ------------------------------- # Standard Autoconf-set variables # ------------------------------- @@ -207,10 +215,10 @@ BASE_TARGET_EXPORTS = \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \ CC="$(CC_FOR_TARGET)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CFLAGS="$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ - CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \ GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ GFORTRAN="$(GFORTRAN_FOR_TARGET)"; export GFORTRAN; \ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ @@ -322,7 +330,6 @@ LDFLAGS = @LDFLAGS@ LIBCFLAGS = $(CFLAGS) CXXFLAGS = @CXXFLAGS@ LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates -PICFLAG = # Only build the C compiler for stage1, because that is the only one that # we can guarantee will build with the native compiler, and also it is the @@ -330,14 +337,19 @@ PICFLAG = # MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them # overrideable (for a bootstrap build stage1 also builds gcc.info). -STAGE1_CFLAGS=@stage1_cflags@ STAGE1_CHECKING=@stage1_checking@ STAGE1_LANGUAGES=@stage1_languages@ +STAGE1_CFLAGS=@stage1_cflags@ STAGE2_CFLAGS=$(BOOT_CFLAGS) STAGE3_CFLAGS=$(BOOT_CFLAGS) STAGE4_CFLAGS=$(BOOT_CFLAGS) +STAGE1_LIBCFLAGS=$(CFLAGS_FOR_TARGET) +STAGE2_LIBCFLAGS=$(CFLAGS_FOR_TARGET) +STAGE3_LIBCFLAGS=$(CFLAGS_FOR_TARGET) +STAGE4_LIBCFLAGS=$(CFLAGS_FOR_TARGET) + do-compare = @do_compare@ do-compare3 = $(do-compare) do-compare-debug = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2 @@ -376,22 +388,14 @@ COMPILER_AS_FOR_TARGET=@COMPILER_AS_FOR_TARGET@ COMPILER_LD_FOR_TARGET=@COMPILER_LD_FOR_TARGET@ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@ -# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS -# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS -# might also be empty (or "-g", if a non-GCC C++ compiler is in the path). -# We want to ensure that TARGET libraries (which we know are built with -# gcc) are built with "-O2 -g", so prepend those options when setting -# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. -CFLAGS_FOR_TARGET = -O2 -g $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \ - $(DEBUG_PREFIX_CFLAGS_FOR_TARGET) +CFLAGS_FOR_TARGET = @CFLAGS_FOR_TARGET@ +CXXFLAGS_FOR_TARGET = @CXXFLAGS_FOR_TARGET@ SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@ -CXXFLAGS_FOR_TARGET = -O2 -g $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \ - $(DEBUG_PREFIX_CFLAGS_FOR_TARGET) + LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates LDFLAGS_FOR_TARGET = -PICFLAG_FOR_TARGET = # ------------------------------------ # Miscellaneous targets and flag lists @@ -491,19 +495,20 @@ POSTSTAGE1_FLAGS_TO_PASS = \ # Flags to pass down to makes which are built with the target environment. # The double $ decreases the length of the command line; those variables # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The -# COMPILER_ prefixed variables are not passed down so we expand them here. +# *_CFLAGS_FOR_TARGET variables are not passed down and most often empty, +# so we expand them here. EXTRA_TARGET_FLAGS = \ 'AR=$$(AR_FOR_TARGET)' \ 'AS=$(COMPILER_AS_FOR_TARGET)' \ 'CC=$$(CC_FOR_TARGET)' \ - 'CFLAGS=$$(CFLAGS_FOR_TARGET)' \ + 'CFLAGS=$$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \ 'CXX=$$(CXX_FOR_TARGET)' \ - 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \ + 'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ 'LD=$(COMPILER_LD_FOR_TARGET)' \ 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \ - 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ - 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \ + 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \ + 'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \ 'NM=$(COMPILER_NM_FOR_TARGET)' \ 'OBJDUMP=$$(OBJDUMP_FOR_TARGET)' \ 'RANLIB=$$(RANLIB_FOR_TARGET)' \ @@ -851,9 +856,11 @@ configure-stage[+id+]-[+prefix+][+module+]: fi; \ [+ ENDIF check_multilibs +]test ! -f [+subdir+]/[+module+]/Makefile || exit 0; \ [+exports+][+ IF prev +] \ - [+poststage1_exports+][+ ENDIF prev +] \ + [+poststage1_exports+][+ ENDIF prev +] [+ IF prefix +] \ + CFLAGS="[+stage_libcflags+] $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXXFLAGS="[+stage_libcflags+] $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; [+ ELSE +] \ CFLAGS="[+stage_cflags+]"; export CFLAGS; \ - LIBCFLAGS="[+stage_cflags+]"; export LIBCFLAGS; \ + CXXFLAGS="[+stage_cflags+]"; export CXXFLAGS; [+ ENDIF +] \ echo Configuring stage [+id+] in [+subdir+]/[+module+] ; \ $(SHELL) $(srcdir)/mkinstalldirs [+subdir+]/[+module+] ; \ cd [+subdir+]/[+module+] || exit 1; \ @@ -890,7 +897,8 @@ all-[+prefix+][+module+]: configure-[+prefix+][+module+][+ IF bootstrap +][+ ELS s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ [+exports+] \ (cd [+subdir+]/[+module+] && \ - $(MAKE) [+args+] [+extra_make_flags+] $(TARGET-[+prefix+][+module+])) + $(MAKE) $(BASE_FLAGS_TO_PASS) [+args+] [+extra_make_flags+] \ + $(TARGET-[+prefix+][+module+])) @endif [+prefix+][+module+] [+ IF bootstrap +] @@ -910,8 +918,11 @@ all-stage[+id+]-[+prefix+][+module+]: configure-stage[+id+]-[+prefix+][+module+] [+exports+][+ IF prev +] \ [+poststage1_exports+][+ ENDIF prev +] \ cd [+subdir+]/[+module+] && \ - $(MAKE) [+args+] \ - CFLAGS="[+stage_cflags+]" LIBCFLAGS="[+stage_cflags+]" [+ + $(MAKE) $(BASE_FLAGS_TO_PASS) \ + CFLAGS="[+stage_cflags+]" CXXFLAGS="[+stage_cflags+]" \ + LIBCFLAGS="[+stage_libcflags+]" \ + CFLAGS_FOR_TARGET="[+stage_libcflags+]" \ + CXXFLAGS_FOR_TARGET="[+stage_libcflags+]" [+args+] [+ IF prev +][+poststage1_args+][+ ENDIF prev +] [+extra_make_flags+] \ $(TARGET-stage[+id+]-[+prefix+][+module+]) @@ -961,7 +972,7 @@ clean-stage[+id+]-[+prefix+][+module+]: [+ all prefix="" subdir="$(HOST_SUBDIR)" exports="$(HOST_EXPORTS)" poststage1_exports="$(POSTSTAGE1_HOST_EXPORTS)" - args="$(FLAGS_TO_PASS)" + args="$(EXTRA_HOST_FLAGS)" poststage1_args="$(POSTSTAGE1_FLAGS_TO_PASS)" +] .PHONY: check-[+module+] maybe-check-[+module+] @@ -1059,7 +1070,7 @@ maybe-[+make_target+]-[+module+]: [+make_target+]-[+module+] [+ all prefix="target-" subdir="$(TARGET_SUBDIR)" exports="$(RAW_CXX_TARGET_EXPORTS)" - args="$(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +] + args="$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +] [+ ELSE +] [+ configure prefix="target-" subdir="$(TARGET_SUBDIR)" check_multilibs=true @@ -1070,7 +1081,7 @@ maybe-[+make_target+]-[+module+]: [+make_target+]-[+module+] [+ all prefix="target-" subdir="$(TARGET_SUBDIR)" exports="$(NORMAL_TARGET_EXPORTS)" - args="$(TARGET_FLAGS_TO_PASS)" +] + args="$(EXTRA_TARGET_FLAGS)" +] [+ ENDIF +] .PHONY: check-target-[+module+] maybe-check-target-[+module+] @@ -1439,11 +1450,11 @@ stage_current: @if test -f stage_last; then $(unstage); else $(MAKE) stage1-start; fi .PHONY: restrap -restrap: +restrap:: @: $(MAKE); $(stage) rm -rf stage1-$(TARGET_SUBDIR) [+ FOR bootstrap-stage +][+ IF prev +]stage[+id+]-* [+ ENDIF prev +][+ ENDFOR bootstrap-stage +] - $(MAKE) $(RECURSE_FLAGS_TO_PASS) all +restrap:: all @endif gcc-bootstrap # --------------------------------------