Home | History | Annotate | Line # | Download | only in contrib
config-list.mk revision 1.1.1.7
      1      1.1  mrg # Run tests covering all config.gcc cases.
      2      1.1  mrg host_options='--with-mpc=/opt/cfarm/mpc' # gcc10
      3      1.1  mrg TEST=all-gcc
      4      1.1  mrg # Make sure you have a recent enough gcc (with ada support) in your path so
      5      1.1  mrg # that --enable-werror-always will work.
      6  1.1.1.4  mrg # To use, create a build directory with plenty of free disk space - a build of
      7  1.1.1.4  mrg # all configurations can take 450GB.
      8  1.1.1.4  mrg # By default, this file assumes the build directory is in a sibling directory
      9  1.1.1.4  mrg # to the gcc sources, but you can override GCC_SRC_DIR to specify where to
     10  1.1.1.4  mrg # find them.  GCC_SRC_DIR is used in the directory below the build directory,
     11  1.1.1.4  mrg # hence the two ".." in the default value; if overriding it, it's easiest to
     12  1.1.1.4  mrg # supply an absolute path.
     13  1.1.1.4  mrg GCC_SRC_DIR=../../gcc
     14  1.1.1.4  mrg 
     15      1.1  mrg # Use -j / -l make arguments and nice to assure a smooth resource-efficient
     16      1.1  mrg # load on the build machine, e.g. for 24 cores:
     17      1.1  mrg # svn co svn://gcc.gnu.org/svn/gcc/branches/foo-branch gcc
     18      1.1  mrg # mkdir multi-mk; cd multi-mk
     19      1.1  mrg # nohup nice make -j25 -l36 -f ../gcc/contrib/config-list.mk > make.out 2>&1 &
     20      1.1  mrg #
     21  1.1.1.4  mrg # Alternatively, if building against an existing gcc source tree:
     22  1.1.1.4  mrg #
     23  1.1.1.4  mrg #   cd /somewhere/with/plenty/of/disk/space
     24  1.1.1.4  mrg #   mkdir multi-mk; cd multi-mk
     25  1.1.1.4  mrg #   nohup nice make \
     26  1.1.1.4  mrg #     -j25 -l36 \
     27  1.1.1.4  mrg #     -f /path/to/contrib/config-list.mk \
     28  1.1.1.4  mrg #     GCC_SRC_DIR=/path/to/gcc/source/tree \
     29  1.1.1.4  mrg #     > make.out 2>&1 &
     30  1.1.1.4  mrg #
     31  1.1.1.4  mrg 
     32      1.1  mrg # v850e1-elf is rejected by config.sub
     33  1.1.1.3  mrg LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
     34  1.1.1.2  mrg   alpha-linux-gnu alpha-freebsd6 alpha-netbsd alpha-openbsd \
     35  1.1.1.7  mrg   alpha64-dec-vms alpha-dec-vms \
     36  1.1.1.2  mrg   arc-elf32OPT-with-cpu=arc600 arc-elf32OPT-with-cpu=arc700 \
     37  1.1.1.2  mrg   arc-linux-uclibcOPT-with-cpu=arc700 arceb-linux-uclibcOPT-with-cpu=arc700 \
     38      1.1  mrg   arm-wrs-vxworks arm-netbsdelf \
     39  1.1.1.2  mrg   arm-linux-androideabi arm-uclinux_eabi arm-eabi arm-rtems \
     40  1.1.1.4  mrg   arm-symbianelf avr-elf \
     41      1.1  mrg   bfin-elf bfin-uclinux bfin-linux-uclibc bfin-rtems bfin-openbsd \
     42      1.1  mrg   c6x-elf c6x-uclinux cr16-elf cris-elf cris-linux crisv32-elf crisv32-linux \
     43      1.1  mrg   epiphany-elf epiphany-elfOPT-with-stack-offset=16 fido-elf \
     44  1.1.1.4  mrg   fr30-elf frv-elf frv-linux ft32-elf h8300-elf hppa-linux-gnu \
     45      1.1  mrg   hppa-linux-gnuOPT-enable-sjlj-exceptions=yes hppa64-linux-gnu \
     46      1.1  mrg   hppa2.0-hpux10.1 hppa64-hpux11.3 \
     47      1.1  mrg   hppa64-hpux11.0OPT-enable-sjlj-exceptions=yes hppa2.0-hpux11.9 \
     48      1.1  mrg   i686-pc-linux-gnu i686-apple-darwin i686-apple-darwin9 i686-apple-darwin10 \
     49      1.1  mrg   i486-freebsd4 i686-freebsd6 i686-kfreebsd-gnu \
     50  1.1.1.4  mrg   i686-netbsdelf9 \
     51  1.1.1.4  mrg   i686-openbsd i686-elf i686-kopensolaris-gnu i686-symbolics-gnu \
     52  1.1.1.4  mrg   i686-pc-msdosdjgpp i686-lynxos i686-nto-qnx \
     53      1.1  mrg   i686-rtems i686-solaris2.10 i686-wrs-vxworks \
     54      1.1  mrg   i686-wrs-vxworksae \
     55      1.1  mrg   i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elf \
     56      1.1  mrg   ia64-freebsd6 ia64-linux ia64-hpux ia64-hp-vms iq2000-elf lm32-elf \
     57  1.1.1.4  mrg   lm32-rtems lm32-uclinux m32c-rtems m32c-elf m32r-elf m32rle-elf \
     58      1.1  mrg   m32r-linux m32rle-linux m68k-elf m68k-netbsdelf \
     59      1.1  mrg   m68k-openbsd m68k-uclinux m68k-linux m68k-rtems \
     60  1.1.1.4  mrg   mcore-elf microblaze-linux microblaze-elf \
     61      1.1  mrg   mips-netbsd \
     62      1.1  mrg   mips64el-st-linux-gnu mips64octeon-linux mipsisa64r2-linux \
     63      1.1  mrg   mipsisa32r2-linux-gnu mipsisa64r2-sde-elf mipsisa32-elfoabi \
     64      1.1  mrg   mipsisa64-elfoabi mipsisa64r2el-elf mipsisa64sr71k-elf mipsisa64sb1-elf \
     65      1.1  mrg   mipsel-elf mips64-elf mips64vr-elf mips64orion-elf mips-rtems \
     66      1.1  mrg   mips-wrs-vxworks mipstx39-elf mmix-knuth-mmixware mn10300-elf moxie-elf \
     67  1.1.1.2  mrg   moxie-uclinux moxie-rtems \
     68  1.1.1.2  mrg   msp430-elf \
     69  1.1.1.2  mrg   nds32le-elf nds32be-elf \
     70  1.1.1.2  mrg   nios2-elf nios2-linux-gnu nios2-rtems \
     71  1.1.1.3  mrg   nvptx-none \
     72  1.1.1.2  mrg   pdp11-aout \
     73      1.1  mrg   powerpc-darwin8 \
     74      1.1  mrg   powerpc-darwin7 powerpc64-darwin powerpc-freebsd6 powerpc-netbsd \
     75      1.1  mrg   powerpc-eabispe powerpc-eabisimaltivec powerpc-eabisim ppc-elf \
     76      1.1  mrg   powerpc-eabialtivec powerpc-xilinx-eabi powerpc-eabi \
     77  1.1.1.2  mrg   powerpc-rtems powerpc-linux_spe \
     78      1.1  mrg   powerpc-linux_paired powerpc64-linux_altivec \
     79  1.1.1.2  mrg   powerpc-wrs-vxworks powerpc-wrs-vxworksae powerpc-wrs-vxworksmils \
     80  1.1.1.2  mrg   powerpc-lynxos powerpcle-elf \
     81  1.1.1.4  mrg   powerpcle-eabisim powerpcle-eabi \
     82  1.1.1.4  mrg   riscv32-unknown-linux-gnu riscv64-unknown-linux-gnu \
     83  1.1.1.4  mrg   rs6000-ibm-aix5.3.0 rs6000-ibm-aix6.1 rs6000-ibm-aix7.1 \
     84      1.1  mrg   rl78-elf rx-elf s390-linux-gnu s390x-linux-gnu s390x-ibm-tpf sh-elf \
     85  1.1.1.4  mrg   shle-linux sh-netbsdelf sh-superh-elf \
     86  1.1.1.4  mrg   sh-rtems sh-wrs-vxworks sparc-elf \
     87      1.1  mrg   sparc-leon-elf sparc-rtems sparc-linux-gnu \
     88      1.1  mrg   sparc-leon3-linux-gnuOPT-enable-target=all sparc-netbsdelf \
     89      1.1  mrg   sparc64-sun-solaris2.10OPT-with-gnu-ldOPT-with-gnu-asOPT-enable-threads=posix \
     90      1.1  mrg   sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux sparc64-freebsd6 \
     91  1.1.1.2  mrg   sparc64-netbsd sparc64-openbsd spu-elf \
     92  1.1.1.2  mrg   tilegx-linux-gnu tilegxbe-linux-gnu tilepro-linux-gnu \
     93  1.1.1.2  mrg   v850e-elf v850-elf v850-rtems vax-linux-gnu \
     94  1.1.1.2  mrg   vax-netbsdelf vax-openbsd visium-elf x86_64-apple-darwin \
     95      1.1  mrg   x86_64-pc-linux-gnuOPT-with-fpmath=avx \
     96      1.1  mrg   x86_64-elfOPT-with-fpmath=sse x86_64-freebsd6 x86_64-netbsd \
     97  1.1.1.4  mrg   x86_64-w64-mingw32 \
     98  1.1.1.3  mrg   x86_64-mingw32OPT-enable-sjlj-exceptions=yes x86_64-rtems \
     99  1.1.1.3  mrg   xstormy16-elf xtensa-elf \
    100  1.1.1.4  mrg   xtensa-linux
    101      1.1  mrg 
    102      1.1  mrg LOGFILES = $(patsubst %,log/%-make.out,$(LIST))
    103      1.1  mrg all: $(LOGFILES)
    104      1.1  mrg config: $(LIST)
    105  1.1.1.2  mrg show:
    106  1.1.1.2  mrg 	@echo $(LIST)
    107      1.1  mrg 
    108  1.1.1.2  mrg .PHONY: make-log-dir all config show
    109      1.1  mrg 
    110      1.1  mrg empty=
    111      1.1  mrg 
    112  1.1.1.4  mrg #Check for the presence of the MAINTAINERS file to make sure we've located
    113  1.1.1.4  mrg #the gcc sources.
    114  1.1.1.4  mrg make-log-dir: $(GCC_SRC_DIR)/MAINTAINERS
    115  1.1.1.4  mrg 	-mkdir log
    116      1.1  mrg 
    117      1.1  mrg $(LIST): make-log-dir
    118      1.1  mrg 	-mkdir $@
    119  1.1.1.2  mrg 	(											\
    120  1.1.1.2  mrg 		cd $@ &&									\
    121  1.1.1.2  mrg 		TGT=`echo $@ | awk 'BEGIN { FS = "OPT" }; { print $$1 }'` &&			\
    122  1.1.1.4  mrg 		TGT=`$(GCC_SRC_DIR)/config.sub $$TGT` &&					\
    123  1.1.1.2  mrg 		case $$TGT in									\
    124  1.1.1.2  mrg 			*-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix*)			\
    125  1.1.1.2  mrg 				ADDITIONAL_LANGUAGES="";					\
    126  1.1.1.2  mrg 				;;								\
    127  1.1.1.2  mrg 			*)									\
    128  1.1.1.2  mrg 				ADDITIONAL_LANGUAGES=",go";					\
    129  1.1.1.2  mrg 				;;								\
    130  1.1.1.2  mrg 		esac &&										\
    131  1.1.1.4  mrg 		$(GCC_SRC_DIR)/configure							\
    132  1.1.1.2  mrg 			--target=$(subst SCRIPTS,`pwd`/../scripts/,$(subst OPT,$(empty) -,$@))	\
    133  1.1.1.2  mrg 			--enable-werror-always ${host_options}					\
    134  1.1.1.2  mrg 			--enable-languages=all,ada$$ADDITIONAL_LANGUAGES;			\
    135  1.1.1.2  mrg 	) > log/$@-config.out 2>&1
    136      1.1  mrg 
    137      1.1  mrg $(LOGFILES) : log/%-make.out : %
    138      1.1  mrg 	-$(MAKE) -C $< $(TEST) > $@ 2>&1 && rm -rf $<
    139