From a738a85c0400ef8cac90af4e5f0291818abf2494 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Thu, 11 Jan 2001 17:11:28 +0000 Subject: [PATCH] Makefile.in (check-gcc//%, [...]): Support parallel testing of multilibs. * Makefile.in (check-gcc//%, check-g++//%, check-g77//%, check-objc//%): Support parallel testing of multilibs. (TESTSUITEDIR): Set to testsuite by default, but override for parallel testing. (check-gcc, check-g++, check-g77, check-objc): Enter $(TESTSUITEDIR). From-SVN: r38909 --- gcc/ChangeLog | 9 +++++++++ gcc/Makefile.in | 45 +++++++++++++++++++++++++++++---------------- 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cb3295ee50f..186c339454a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2001-01-11 Alexandre Oliva + + * Makefile.in (check-gcc//%, check-g++//%, check-g77//%, + check-objc//%): Support parallel testing of multilibs. + (TESTSUITEDIR): Set to testsuite by default, but override for + parallel testing. + (check-gcc, check-g++, check-g77, check-objc): Enter + $(TESTSUITEDIR). + 2001-01-11 Bernd Schmidt * alias.c (throughout): Use REGNO, rather than ORIGINAL_REGNO. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 03f928b3c6e..fc128797ee0 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -2730,49 +2730,62 @@ CHECK_TARGETS = check-gcc check-g++ check-g77 check-objc @CHECK_PO@ check: $(CHECK_TARGETS) -testsuite/site.exp: site.exp - if [ -d testsuite ]; then \ - true; \ - else \ - mkdir testsuite; \ - fi - rm -rf testsuite/site.exp - cp site.exp testsuite/site.exp +PAR_CHECK_TARGETS = $(CHECK_TARGETS:check-%=check/%) -check-g++: testsuite/site.exp +# The idea is to parallelize testing of multilibs, for example: +# make -j3 check/gcc/sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu} +# will run 3 concurrent sessions of check-gcc, eventually testing +# all 10 combinations. GNU make is required, as is a shell that expands +# alternations within braces. +$(PAR_CHECK_TARGETS:=/%): site.exp + target=`echo "$@" | sed 's,/,-,;s,/.*,,'`; \ + variant=`echo "$@" | sed 's,/,-,;s,^[^/]*/,,'`; \ + vardots=`echo "$$variant" | sed 's,/,.,g'`; \ + $(MAKE) TESTSUITEDIR="testsuite.$$vardots" \ + RUNTESTFLAGS="--target_board=$$variant $(RUNTESTFLAGS)" \ + "$$target" + +TESTSUITEDIR = testsuite + +$(TESTSUITEDIR)/site.exp: site.exp + test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR) + -rm -f $@ + sed '/set tmpdir/ s|testsuite|$(TESTSUITEDIR)|' < site.exp > $@ + +check-g++: $(TESTSUITEDIR)/site.exp -(rootme=`pwd`; export rootme; \ srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd testsuite; \ + cd $(TESTSUITEDIR); \ EXPECT=${EXPECT} ; export EXPECT ; \ if [ -f $${rootme}/../expect/expect ] ; then \ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \ export TCL_LIBRARY ; fi ; \ $(RUNTEST) --tool g++ $(RUNTESTFLAGS)) -check-gcc: testsuite/site.exp +check-gcc: $(TESTSUITEDIR)/site.exp -(rootme=`pwd`; export rootme; \ srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd testsuite; \ + cd $(TESTSUITEDIR); \ EXPECT=${EXPECT} ; export EXPECT ; \ if [ -f $${rootme}/../expect/expect ] ; then \ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \ export TCL_LIBRARY ; fi ; \ $(RUNTEST) --tool gcc $(RUNTESTFLAGS)) -check-g77: testsuite/site.exp +check-g77: $(TESTSUITEDIR)/site.exp -(rootme=`pwd`; export rootme; \ srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd testsuite; \ + cd $(TESTSUITEDIR); \ EXPECT=${EXPECT} ; export EXPECT ; \ if [ -f $${rootme}/../expect/expect ] ; then \ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \ export TCL_LIBRARY ; fi ; \ $(RUNTEST) --tool g77 $(RUNTESTFLAGS)) -check-objc: testsuite/site.exp +check-objc: $(TESTSUITEDIR)/site.exp -(rootme=`pwd`; export rootme; \ srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd testsuite; \ + cd $(TESTSUITEDIR); \ EXPECT=${EXPECT} ; export EXPECT ; \ if [ -f $${rootme}/../expect/expect ] ; then \ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \