binutils-gdb/sim/testsuite/Makefile.in
Mike Frysinger 119da46568 sim: unify target->subdir handling for default tests
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>
2010-04-26 16:23:24 +00:00

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