mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
119da46568
The testsuite subdir has a note about unifying the target->subdir logic, so do just that. The end goal here is to have `make check` work out of the box without having to delve into dejagnu internals. The target-specific logic is split out of the top level configure.ac file and into a dedicated configure.tgt similar to other subprojects (gdb and ld and etc...) with the difference that this file has to be included at the m4 level instead of the shell level. This is necessary only because autoconf requires AC_CONFIG_SUBDIRS be given a string literal and not a variable value. Then the toplevel and the testsuite configure files pull this in, the sim subdir gets expanded into testsuite/site.exp, and the default sim run code uses this info to set the sim path to the local compiled run file if it hasn't already been specified. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
183 lines
5.4 KiB
Makefile
183 lines
5.4 KiB
Makefile
# Makefile for regression testing the GNU debugger.
|
|
# Copyright (C) 1997, 1998, 2007, 2008, 2009, 2010
|
|
# Free Software Foundation, Inc.
|
|
|
|
# This file is part of GDB.
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
VPATH = @srcdir@
|
|
srcdir = @srcdir@
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
|
|
build_canonical = @build@
|
|
build_alias = @build_alias@
|
|
host_canonical = @host@
|
|
host_alias = @host_alias@
|
|
target_canonical = @target@
|
|
target_alias = @target_alias@
|
|
program_transform_name = @program_transform_name@
|
|
|
|
arch = @sim_arch@
|
|
|
|
SHELL = /bin/sh
|
|
SUBDIRS = @subdirs@
|
|
RPATH_ENVVAR = @RPATH_ENVVAR@
|
|
|
|
EXPECT = `if [ -f $${rootme}/../../expect/expect ] ; then \
|
|
echo $${rootme}/../../expect/expect ; \
|
|
else echo expect ; fi`
|
|
|
|
RUNTEST = `if [ -f $${srcdir}/../../dejagnu/runtest ] ; then \
|
|
echo $${srcdir}/../../dejagnu/runtest ; else echo runtest; \
|
|
fi`
|
|
|
|
RUNTESTFLAGS =
|
|
|
|
#### host, target, and site specific Makefile frags come in here.
|
|
|
|
# The use of $$(x_FOR_TARGET) reduces the command line length by not
|
|
# duplicating the lengthy definition.
|
|
|
|
TARGET_FLAGS_TO_PASS = \
|
|
"prefix=$(prefix)" \
|
|
"exec_prefix=$(exec_prefix)" \
|
|
"against=$(against)" \
|
|
'CC=$$(CC_FOR_TARGET)' \
|
|
"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
|
|
"CFLAGS=$(TESTSUITE_CFLAGS)" \
|
|
"CHILLFLAGS=$(CHILLFLAGS)" \
|
|
'CHILL=$$(CHILL_FOR_TARGET)' \
|
|
"CHILL_FOR_TARGET=$(CHILL_FOR_TARGET)" \
|
|
"CHILL_LIB=$(CHILL_LIB)" \
|
|
'CXX=$$(CXX_FOR_TARGET)' \
|
|
"CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
|
|
"CXXFLAGS=$(CXXFLAGS)" \
|
|
"MAKEINFO=$(MAKEINFO)" \
|
|
"INSTALL=$(INSTALL)" \
|
|
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
|
"INSTALL_DATA=$(INSTALL_DATA)" \
|
|
"RUNTESTFLAGS=$(RUNTESTFLAGS)"
|
|
|
|
# "RUNTEST=$(RUNTEST)" \
|
|
|
|
all:
|
|
@echo "Nothing to be done for all..."
|
|
|
|
.NOEXPORT:
|
|
info:
|
|
install-info:
|
|
dvi:
|
|
|
|
install:
|
|
|
|
uninstall: force
|
|
|
|
installcheck:
|
|
|
|
check: check-DEJAGNU check-recursive
|
|
|
|
#test1:
|
|
check-recursive:
|
|
@for i in . ${SUBDIRS}; do \
|
|
if [ $$i = . ] ; then continue ; fi ; \
|
|
if [ -d ./$$i ] ; then \
|
|
if (rootme=`pwd`/ ; export rootme ; \
|
|
rootsrc=`cd $(srcdir); pwd`/ ; export rootsrc ; \
|
|
echo "check recursively into $$i directory..."; \
|
|
cd ./$$i; \
|
|
$(MAKE) $(TARGET_FLAGS_TO_PASS) check) ; then true ; \
|
|
else exit 1 ; fi ; \
|
|
else true ; fi ; \
|
|
done
|
|
|
|
#test2:
|
|
check-DEJAGNU: site.exp
|
|
echo "Dejagnu-checking in `pwd` directory ..."
|
|
rootme=`pwd`; export rootme; echo rootme = $$rootme; \
|
|
srcdir=`cd ${srcdir}; pwd`; export srcdir ; echo srcdir = $$srcdir; \
|
|
EXPECT=${EXPECT} ; export EXPECT ; echo EXPECT = $$EXPECT; \
|
|
if [ -f $$rootme/../../expect/expect ]; then \
|
|
TCL_LIBRARY=`cd $$srcdir/../../tcl/library && pwd`; \
|
|
export TCL_LIBRARY; \
|
|
fi; \
|
|
echo TCL_LIBRARY = $$TCL_LIBRARY; \
|
|
runtest=$(RUNTEST); echo runtest = $$runtest; \
|
|
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
|
|
$$runtest $(RUNTESTFLAGS); \
|
|
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
|
|
fi
|
|
|
|
|
|
site.exp: Makefile
|
|
@echo 'Making a new site.exp file...'
|
|
-@rm -f site.bak
|
|
@echo '## these variables are automatically generated by make ##' > $@-t
|
|
@echo '# Do not edit here. If you wish to override these values' >> $@-t
|
|
@echo '# edit the last section' >> $@-t
|
|
@echo 'set tool sim' >> $@-t
|
|
@echo 'set srcdir $(srcdir)' >> $@-t
|
|
@echo 'set objdir' `pwd` >> $@-t
|
|
@echo 'set arch $(arch)' >> $@-t
|
|
@echo 'set build_alias $(build_alias)' >> $@-t
|
|
@echo 'set build_triplet $(build_canonical)' >> $@-t
|
|
@echo 'set host_alias $(host_alias)' >> $@-t
|
|
@echo 'set host_triplet $(host_canonical)' >> $@-t
|
|
@echo 'set target_alias $(target_alias)' >> $@-t
|
|
@echo 'set target_triplet $(target_canonical)' >> $@-t
|
|
@echo '## All variables above are generated by configure. Do Not Edit ##' >> $@-t
|
|
-@sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t
|
|
-@mv site.exp site.bak
|
|
@mv $@-t site.exp
|
|
|
|
force:;
|
|
|
|
clean mostlyclean:
|
|
-rm -f *~ core *.o a.out xgdb *.x *.grt
|
|
-rm -f *.rum *.c *.dif *.*out
|
|
if [ x"${SUBDIRS}" != x ] ; then \
|
|
for dir in ${SUBDIRS}; \
|
|
do \
|
|
echo "$$dir:"; \
|
|
if [ -d $$dir ]; then \
|
|
(cd $$dir; $(MAKE) clean); \
|
|
fi; \
|
|
done ; \
|
|
else true; fi
|
|
|
|
distclean maintainer-clean realclean: clean
|
|
-rm -f *~ core
|
|
-rm -f Makefile config.status *-init.exp
|
|
-rm -fr *.log summary detail *.plog *.sum *.psum site.*
|
|
if [ x"${SUBDIRS}" != x ] ; then \
|
|
for dir in ${SUBDIRS}; \
|
|
do \
|
|
echo "$$dir:"; \
|
|
if [ -d $$dir ]; then \
|
|
(cd $$dir; $(MAKE) distclean); \
|
|
fi; \
|
|
done ; \
|
|
else true; fi
|
|
|
|
Makefile : Makefile.in config.status
|
|
$(SHELL) config.status
|
|
|
|
config.status: $(srcdir)/configure
|
|
$(SHELL) ./config.status --recheck
|
|
# FIXME: Requires --enable-maintainer-mode, which one could add, but
|
|
# it's provided by automake. Maybe switch to automake someday.
|
|
#$(srcdir)/configure: @MAINT@ $(srcdir)/configure.in
|
|
# cd $(srcdir) && autoconf
|