diff options
Diffstat (limited to 'Makefile.tpl')
-rw-r--r-- | Makefile.tpl | 318 |
1 files changed, 78 insertions, 240 deletions
diff --git a/Makefile.tpl b/Makefile.tpl index bc467ce..6ccb817 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -109,8 +109,6 @@ INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS) INSTALL_SCRIPT = $(INSTALL) INSTALL_DATA = $(INSTALL) -m 644 -INSTALL_DOSREL = install-dosrel-fake - AS = @AS@ AR = @AR@ AR_FLAGS = rc @@ -118,7 +116,7 @@ CC = cc # Special variables passed down in EXTRA_GCC_FLAGS. They are defined # here so that they can be overridden by Makefile fragments. -HOST_CC = $(CC_FOR_BUILD) +BUILD_CC = $(CC_FOR_BUILD) BUILD_PREFIX = @BUILD_PREFIX@ BUILD_PREFIX_1 = @BUILD_PREFIX_1@ @@ -254,21 +252,6 @@ TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs: REALLY_SET_LIB_PATH = \ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); -ALL = all.normal -INSTALL_TARGET = installdirs \ - install-gcc \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - $(INSTALL_DOSREL) - -INSTALL_TARGET_CROSS = installdirs \ - install-gcc-cross \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - $(INSTALL_DOSREL) - # Should be substed by configure.in FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ CC_FOR_TARGET = @CC_FOR_TARGET@ @@ -382,13 +365,6 @@ USUAL_NM_FOR_TARGET = ` \ all: all.normal .PHONY: all -# These can be overridden by config/mt-*. -# The _TARGET_ is because they're specified in mt-foo. -# The _HOST_ is because they're programs that run on the host. -EXTRA_TARGET_HOST_ALL_MODULES = -EXTRA_TARGET_HOST_INSTALL_MODULES = -EXTRA_TARGET_HOST_CHECK_MODULES = - #### host and target specific makefile fragments come in here. ### @@ -526,7 +502,7 @@ EXTRA_GCC_FLAGS = \ 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ - 'HOST_CC=$(CC_FOR_BUILD)' \ + 'BUILD_CC=$(CC_FOR_BUILD)' \ 'BUILD_PREFIX=$(BUILD_PREFIX)' \ 'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \ 'NM=$(NM)' \ @@ -558,71 +534,12 @@ ALL_BUILD_MODULES = @all_build_modules@ CONFIGURE_BUILD_MODULES = \ configure-build-libiberty -# This is a list of the targets for all of the modules which are compiled -# using $(FLAGS_TO_PASS). -ALL_MODULES = [+ FOR host_modules +][+ IF with_x +][+ ELSE with_x +]\ - all-[+module+] [+ ENDIF with_x +][+ ENDFOR host_modules +]\ - $(EXTRA_TARGET_HOST_ALL_MODULES) - -# This is a list of the check targets for all of the modules which are -# compiled using $(FLAGS_TO_PASS). -# -# The list is in two parts. The first lists those tools which -# are tested as part of the host's native tool-chain, and not -# tested in a cross configuration. -NATIVE_CHECK_MODULES = \ - check-bison \ - check-byacc \ - check-fastjar \ - check-flex \ - check-zip - -CROSS_CHECK_MODULES = [+ FOR host_modules +][+ IF no_check +][+ ELIF no_check_cross +][+ ELIF with_x +][+ ELSE check +]\ - check-[+module+] [+ ENDIF no_check +][+ ENDFOR host_modules +]\ - $(EXTRA_TARGET_HOST_CHECK_MODULES) - -CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) - -# This is a list of the install targets for all of the modules which are -# compiled using $(FLAGS_TO_PASS). -INSTALL_MODULES = [+ FOR host_modules+][+ IF no_install +][+ ELIF with_x +][+ ELSE install +]\ - install-[+module+] [+ ENDIF no_install +][+ ENDFOR host_modules +]\ - $(EXTRA_TARGET_HOST_INSTALL_MODULES) - -# This is a list of the targets for all of the modules which are compiled -# using $(X11_FLAGS_TO_PASS). -ALL_X11_MODULES = [+ FOR host_modules +][+ IF with_x +]\ - all-[+module+] [+ ENDIF with_x +][+ ENDFOR host_modules +] - -# This is a list of the check targets for all of the modules which are -# compiled using $(X11_FLAGS_TO_PASS). -CHECK_X11_MODULES = [+ FOR host_modules +][+ IF with_x +]\ - check-[+module+] [+ ENDIF with_x +][+ ENDFOR host_modules +] - -# This is a list of the install targets for all the modules which are -# compiled using $(X11_FLAGS_TO_PASS). -INSTALL_X11_MODULES = [+ FOR host_modules +][+ IF with_x +]\ - install-[+module+] [+ ENDIF with_x +][+ ENDFOR host_modules +] - -# This is a list of the targets for all of the modules which are compiled -# using $(TARGET_FLAGS_TO_PASS). -ALL_TARGET_MODULES = [+ FOR target_modules +]\ - all-target-[+module+] [+ ENDFOR target_modules +] - # This is a list of the configure targets for all of the modules which # are compiled using the target tools. CONFIGURE_TARGET_MODULES = [+ FOR target_modules +]\ configure-target-[+module+] [+ ENDFOR target_modules +] -# This is a list of the check targets for all of the modules which are -# compiled using $(TARGET_FLAGS_TO_PASS). -CHECK_TARGET_MODULES = [+ FOR target_modules +][+ IF no_check +][+ ELSE check +]\ - check-target-[+module+] [+ ENDIF no_check +][+ ENDFOR target_modules +] - -# This is a list of the install targets for all of the modules which are -# compiled using $(TARGET_FLAGS_TO_PASS). -INSTALL_TARGET_MODULES = [+ FOR target_modules +][+ IF no_install +][+ ELSE install +]\ - install-target-[+module+] [+ ENDIF no_install +][+ ENDFOR target_modules +] +configure-target: $(CONFIGURE_TARGET_MODULES) # This is a list of the targets for which we can do a clean-{target}. CLEAN_MODULES = [+ FOR host_modules +][+ IF no_clean +][+ ELIF with_x +][+ ELSE clean +]\ @@ -637,13 +554,13 @@ CLEAN_X11_MODULES = [+ FOR host_modules +][+ IF with_x +]\ clean-[+module+] [+ ENDIF with_x +][+ ENDFOR host_modules +] # The target built for a native build. +# This list only includes modules actually being configured and built. .PHONY: all.normal -all.normal: \ - $(ALL_BUILD_MODULES) \ - $(ALL_MODULES) \ - $(ALL_X11_MODULES) \ - $(ALL_TARGET_MODULES) \ - all-gcc +all.normal: @all_build_modules@ \ + @all_host_modules@ \ + @all_target_modules@ + +all-target: @all_target_modules@ # Do a target for all the subdirectories. A ``make do-X'' will do a # ``make X'' in all subdirectories (because, in general, there is a @@ -784,10 +701,9 @@ clean-target-libgcc: check: $(MAKE) do-check NOTPARALLEL=parallel-ok -do-check: $(CHECK_MODULES) \ - $(CHECK_TARGET_MODULES) \ - $(CHECK_X11_MODULES) \ - check-gcc +# Only include modules actually being configured and built. +do-check: @check_host_modules@ \ + @check_target_modules@ # Automated reporting of test results. @@ -812,9 +728,10 @@ mail-report-with-warnings.log: warning.log # Installation targets. -.PHONY: install install-cross uninstall source-vault binary-vault vault-install -install: $(INSTALL_TARGET) -install-cross: $(INSTALL_TARGET_CROSS) +.PHONY: install uninstall source-vault binary-vault vault-install +install: installdirs @install_host_modules@ @install_target_modules@ + +install-target: @install_target_modules@ uninstall: @echo "the uninstall target is not supported in this tree" @@ -848,12 +765,8 @@ install.all: install-no-fixedincludes # install-no-fixedincludes is used because Cygnus can not distribute # the fixed header files. .PHONY: install-no-fixedincludes -install-no-fixedincludes: \ - installdirs \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - gcc-no-fixedincludes +install-no-fixedincludes: installdirs @install_host_modules_nogcc@ \ + @install_target_modules@ gcc-no-fixedincludes # Install the gcc headers files, but not the fixed include files, # which Cygnus is not allowed to distribute. This rule is very @@ -974,62 +887,82 @@ configure-build-[+module+]: fi [+ ENDFOR build_modules +] -# This rule is used to build the modules which use FLAGS_TO_PASS. To +# These rules are used to build the modules which use FLAGS_TO_PASS. To # build a target all-X means to cd to X and make all. -.PHONY: $(ALL_MODULES) -$(ALL_MODULES): - @dir=`echo $@ | sed -e 's/all-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ +[+ FOR host_modules +] +.PHONY: all-[+module+] +all-[+module+]: + @dir=[+module+]; \ + if [ -f ./[+module+]/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \ + (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] all); \ else \ true; \ fi -# These rules are used to check the modules which use FLAGS_TO_PASS. -# To build a target check-X means to cd to X and make check. Some -# modules are only tested in a native toolchain. - -.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) -$(NATIVE_CHECK_MODULES): +[+ IF no_check +] +.PHONY: check-[+module+] +check-[+module+]: +[+ ELIF no_check_cross +] +.PHONY: check-[+module+] +# This module is only tested in a native toolchain. +check-[+module+]: @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ + dir=[+module+]; \ + if [ -f ./[+module+]/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ + (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] check); \ else \ true; \ fi; \ fi - -$(CROSS_CHECK_MODULES): - @dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ +[+ ELSE check +] +.PHONY: check-[+module+] +check-[+module+]: + @dir=[+module+]; \ + if [ -f ./[+module+]/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ + (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] check); \ else \ true; \ fi +[+ ENDIF no_check +] -# This rule is used to install the modules which use FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(INSTALL_MODULES) -$(INSTALL_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ +[+ IF no_install +] +.PHONY: install-[+module+] +install-[+module+]: +[+ ELSE install +] +.PHONY: install-[+module+] +install-[+module+]: installdirs + @dir=[+module+]; \ + if [ -f ./[+module+]/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ + (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] install); \ else \ true; \ fi +[+ ENDIF no_install +] +[+ ENDFOR host_modules +] # These rules are used to build the modules which are built with the target # tools. To make foo-X means to cd to X and make foo. @@ -1149,7 +1082,11 @@ all-target-[+module+]: else \ true; \ fi -[+ IF no_check +][+ ELSE check +] +[+ IF no_check +] +# Dummy target for uncheckable module. +.PHONY: check-target-[+module+] +check-target-[+module+]: +[+ ELSE check +] .PHONY: check-target-[+module+] check-target-[+module+]: @dir=[+module+] ; \ @@ -1179,51 +1116,6 @@ install-target-[+module+]: installdirs [+ ENDIF no_install +] [+ ENDFOR target_modules +] -# This rule is used to build the modules which use X11_FLAGS_TO_PASS. -# To build a target all-X means to cd to X and make all. -.PHONY: $(ALL_X11_MODULES) -$(ALL_X11_MODULES): - @dir=`echo $@ | sed -e 's/all-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \ - else \ - true; \ - fi - -# This rule is used to check the modules which use X11_FLAGS_TO_PASS. -# To build a target check-X means to cd to X and make all. -.PHONY: $(CHECK_X11_MODULES) -$(CHECK_X11_MODULES): - @dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \ - else \ - true; \ - fi - -# This rule is used to install the modules which use X11_FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(INSTALL_X11_MODULES) -$(INSTALL_X11_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \ - else \ - true; \ - fi - # gcc is the only module which uses GCC_FLAGS_TO_PASS. .PHONY: all-gcc all-gcc: @@ -1323,135 +1215,75 @@ install-gcc: true; \ fi -.PHONY: install-gcc-cross -install-gcc-cross: - @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \ - else \ - true; \ - fi -# EXPERIMENTAL STUFF -# This rule is used to install the modules which use FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: install-dosrel -install-dosrel: installdirs info - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ - else \ - true; \ - fi - -install-dosrel-fake: - ALL_GCC = all-gcc ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3 # This is a list of inter-dependencies among modules. -all-ash: all-autoconf: all-m4 all-texinfo all-automake: all-m4 all-texinfo -all-bash: all-bfd: all-libiberty all-intl all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl all-bison: all-texinfo configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads -all-byacc: -all-bzip2: -all-db: all-dejagnu: all-tcl all-expect all-tk all-diff: all-libiberty -all-etc: configure-target-examples: $(ALL_GCC_C) all-expect: all-tcl all-tk all-fileutils: all-libiberty -all-findutils: -all-find: all-flex: all-libiberty all-bison all-byacc all-gas: all-libiberty all-opcodes all-bfd all-intl -all-gawk: -all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib +all-gcc: all-libiberty all-bison all-byacc all-binutils all-gas all-ld all-zlib all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib GDB_TK = @GDB_TK@ all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK) -all-gettext: -all-gnuserv: configure-target-gperf: $(ALL_GCC_CXX) all-target-gperf: all-target-libiberty all-target-libstdc++-v3 all-gprof: all-libiberty all-bfd all-opcodes all-intl all-grep: all-libiberty -all-guile: all-gzip: all-libiberty all-hello: all-libiberty -all-indent: -all-intl: all-itcl: all-tcl all-tk all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl configure-target-libgloss: $(ALL_GCC) all-target-libgloss: configure-target-newlib all-libgui: all-tcl all-tk all-itcl -all-libiberty: - -all-build-libiberty: configure-build-libiberty - configure-target-libffi: $(ALL_GCC_C) configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi all-target-libjava: all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi configure-target-libstdc++-v3: $(ALL_GCC_C) all-target-libstdc++-v3: all-target-libiberty -all-libtool: configure-target-libf2c: $(ALL_GCC_C) all-target-libf2c: all-target-libiberty configure-target-libobjc: $(ALL_GCC_C) all-target-libobjc: all-target-libiberty all-m4: all-libiberty all-texinfo all-make: all-libiberty -all-mmalloc: configure-target-newlib: $(ALL_GCC) configure-target-libtermcap: $(ALL_GCC_C) all-opcodes: all-bfd all-libiberty all-patch: all-libiberty -all-perl: all-prms: all-libiberty configure-target-qthreads: $(ALL_GCC_C) -all-rcs: -all-readline: all-recode: all-libiberty all-sed: all-libiberty all-send-pr: all-prms -all-shellutils: all-sid: all-tcl all-tk all-sim: all-libiberty all-bfd all-opcodes all-readline all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui all-tar: all-libiberty -all-tcl: all-tclX: all-tcl all-tk all-tk: all-tcl all-texinfo: all-libiberty -all-textutils: -all-time: all-tix: all-tcl all-tk -all-wdiff: configure-target-winsup: $(ALL_GCC_C) all-target-winsup: all-target-libiberty all-target-libtermcap all-uudecode: all-libiberty -all-zip: -all-zlib: configure-target-zlib: $(ALL_GCC_C) all-fastjar: all-zlib all-libiberty configure-target-fastjar: configure-target-zlib -all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty +all-target-fastjar: all-target-zlib all-target-libiberty configure-target-libiberty: $(ALL_GCC_C) -configure-target: $(CONFIGURE_TARGET_MODULES) -all-target: $(ALL_TARGET_MODULES) -install-target: $(INSTALL_TARGET_MODULES) install-gdb: install-tcl install-tk install-itcl install-tix install-libgui install-sid: install-tcl install-tk @@ -1464,6 +1296,12 @@ install-binutils: install-opcodes # program on installation which uses the Tcl libraries. install-itcl: install-tcl +# This is a slightly kludgy method of getting dependencies on +# all-build-libiberty correct; it would be better to build it every time. +all-gcc: @all_build_modules@ + +# Dependencies of all-build-foo on configure-build-foo. +all-build-libiberty: configure-build-libiberty # Dependencies of all-target-foo on configure-target-foo. [+ FOR target_modules +]all-target-[+module+]: configure-target-[+module+] |