X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=Makefile.tpl;h=ad1400ebf7abf9f7b899d3fa571ac2b48fb1dcd6;hb=c60836bc08da2d8b04d85ad3056afe425dd550d2;hp=6bc461bfddaa7acd4115ebf4ae167c809c6da5a4;hpb=7f6ef0c0b8517b25e34e9f5c1208afefef50aec9;p=deliverable%2Fbinutils-gdb.git diff --git a/Makefile.tpl b/Makefile.tpl index 6bc461bfdd..ad1400ebf7 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 # ------------------------------- @@ -100,6 +108,11 @@ GDB_NLM_DEPS = # the libraries. RPATH_ENVVAR = @RPATH_ENVVAR@ +# On targets where RPATH_ENVVAR is PATH, a subdirectory of the GCC build path +# is used instead of the directory itself to avoid including built +# executables in PATH. +GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@ + # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring @@ -139,6 +152,12 @@ BUILD_EXPORTS = \ WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \ WINDMC="$(WINDMC_FOR_BUILD)"; export WINDMC; +# These variables must be set on the make command line for directories +# built for the build system to override those in BASE_FLAGS_TO_PASSS. +EXTRA_BUILD_FLAGS = \ + CFLAGS="$(CFLAGS_FOR_BUILD)" \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)" + # This is the list of directories to built for the host system. SUBDIRS = @configdirs@ # This is set by the configure script to the arguments to use when configuring @@ -153,6 +172,7 @@ HOST_SUBDIR = @host_subdir@ HOST_EXPORTS = \ $(BASE_EXPORTS) \ CC="$(CC)"; export CC; \ + ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ CXX="$(CXX)"; export CXX; \ @@ -179,6 +199,10 @@ HOST_EXPORTS = \ TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \ GMPINC="$(HOST_GMPINC)"; export GMPINC; \ + PPLLIBS="$(HOST_PPLLIBS)"; export PPLLIBS; \ + PPLINC="$(HOST_PPLINC)"; export PPLINC; \ + CLOOGLIBS="$(HOST_CLOOGLIBS)"; export CLOOGLIBS; \ + CLOOGINC="$(HOST_CLOOGINC)"; export CLOOGINC; \ @if gcc-bootstrap $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \ @endif gcc-bootstrap @@ -193,6 +217,7 @@ POSTSTAGE1_HOST_EXPORTS = \ $$r/$(HOST_SUBDIR)/prev-gcc/xgcc$(exeext) \ -B$$r/$(HOST_SUBDIR)/prev-gcc/ \ -B$(build_tooldir)/bin/"; export CC_FOR_BUILD; \ + GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind"; export GNATBIND \ LDFLAGS="$(BOOT_LDFLAGS)"; export LDFLAGS; # Target libraries are put under this directory: @@ -238,6 +263,14 @@ NORMAL_TARGET_EXPORTS = \ HOST_GMPLIBS = @gmplibs@ HOST_GMPINC = @gmpinc@ +# Where to find PPL +HOST_PPLLIBS = @ppllibs@ +HOST_PPLINC = @pplinc@ + +# Where to find CLOOG +HOST_CLOOGLIBS = @clooglibs@ +HOST_CLOOGINC = @clooginc@ + # ---------------------------------------------- # Programs producing files for the BUILD machine # ---------------------------------------------- @@ -279,6 +312,7 @@ BUILD_PREFIX_1 = @BUILD_PREFIX_1@ # here so that they can be overridden by Makefile fragments. BOOT_CFLAGS= -g -O2 BOOT_LDFLAGS= +BOOT_ADAFLAGS=-gnatpg -gnata BISON = @BISON@ YACC = @YACC@ @@ -322,7 +356,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 @@ -389,7 +422,6 @@ DEBUG_PREFIX_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 @@ -426,7 +458,7 @@ HOST_LIB_PATH = [+ FOR host_modules +][+ # Define HOST_LIB_PATH_gcc here, for the sake of TARGET_LIB_PATH, ouch @if gcc -HOST_LIB_PATH_gcc = $$r/$(HOST_SUBDIR)/gcc:$$r/$(HOST_SUBDIR)/prev-gcc: +HOST_LIB_PATH_gcc = $$r/$(HOST_SUBDIR)/gcc$(GCC_SHLIB_SUBDIR):$$r/$(HOST_SUBDIR)/prev-gcc$(GCC_SHLIB_SUBDIR): @endif gcc [+ FOR host_modules +][+ IF lib_path +] @@ -481,8 +513,7 @@ X11_FLAGS_TO_PASS = \ # Flags to pass to stage2 and later makes. POSTSTAGE1_FLAGS_TO_PASS = \ - CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \ - GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind" \ + CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" GNATBIND="$${GNATBIND}" \ LDFLAGS="$(BOOT_LDFLAGS)" \ "`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" @@ -949,7 +980,8 @@ clean-stage[+id+]-[+prefix+][+module+]: target_alias=(get "target" "${target_alias}") args="$(BUILD_CONFIGARGS)" no-config-site=true +] -[+ all prefix="build-" subdir="$(BUILD_SUBDIR)" exports="$(BUILD_EXPORTS)" +] +[+ all prefix="build-" subdir="$(BUILD_SUBDIR)" exports="$(BUILD_EXPORTS)" + args="$(EXTRA_BUILD_FLAGS)" +] [+ ENDFOR build_module +] # -------------------------------------- @@ -1184,19 +1216,15 @@ cross: all-build all-gas all-ld @endif gcc-no-bootstrap @if gcc -.PHONY: check-gcc-c++ -check-gcc-c++: - @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD_COMMAND}`; export r; \ - s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ - $(HOST_EXPORTS) \ - (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ - else \ - true; \ - fi - -.PHONY: check-c++ -check-c++: check-target-libstdc++-v3 check-gcc-c++ +[+ FOR languages +] +.PHONY: check-gcc-[+language+] check-[+language+] +check-gcc-[+language+]: + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) [+gcc-check-target+]); +check-[+language+]: check-gcc-[+language+][+ IF lib-check-target +] [+ lib-check-target +][+ ENDIF lib-check-target +] +[+ ENDFOR languages +] # Install the gcc headers files, but not the fixed include files, # which Cygnus is not allowed to distribute. This rule is very @@ -1305,7 +1333,7 @@ stage[+id+]-end:: [+ FOR host_modules +][+ IF bootstrap +] # Bubble a bug fix through all the stages up to stage [+id+]. They are # remade, but not reconfigured. The next stage (if any) will not be -# reconfigured as well. +# reconfigured either. .PHONY: stage[+id+]-bubble stage[+id+]-bubble:: [+ IF prev +]stage[+prev+]-bubble[+ ENDIF +] @r=`${PWD_COMMAND}`; export r; \ @@ -1436,6 +1464,8 @@ do-distclean: distclean-stage1 # Provide a GCC build when we're building target libraries. This does # not work as a dependency, just as the minimum necessary to avoid errors. stage_last: + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(MAKE) $(RECURSE_FLAGS_TO_PASS) stage1-bubble # Same as unstage, but not phony and defaulting to stage1-start. We place @@ -1444,11 +1474,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 # -------------------------------------- @@ -1479,7 +1509,7 @@ configure-target-[+module+]: maybe-all-gcc[+ [+ ;; These Scheme functions build the bulk of the dependencies. ;; dep-target builds a string like "maybe-all-MODULE_KIND-gcc", - ;; where "maybe-" is only included if HARD is true, and all-gcc + ;; where "maybe-" is only included if HARD is not true, and all-gcc ;; is taken from VAR-NAME. (define dep-target (lambda (module-kind var-name hard) (string-append @@ -1637,7 +1667,8 @@ config.status: configure # Rebuilding configure. AUTOCONF = autoconf -$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/config/acx.m4 +$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/config/acx.m4 \ + $(srcdir)/config/override.m4 $(srcdir)/config/proginstall.m4 cd $(srcdir) && $(AUTOCONF) # ------------------------------