1 # Makefile for regression testing the GNU debugger.
2 # Copyright (C) 1992-2017 Free Software Foundation, Inc.
4 # This file is part of GDB.
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21 srcroot = $(srcdir)/..
24 exec_prefix = @exec_prefix@
26 host_alias = @host_alias@
27 target_alias = @target_alias@
28 program_transform_name = @program_transform_name@
29 build_canonical = @build@
30 host_canonical = @host@
31 target_canonical = @target@
32 target_cpu = @target_cpu@
37 RPATH_ENVVAR = @RPATH_ENVVAR@
39 EXPECT = `if [ -f $${rootme}/../../expect/expect ] ; then \
40 echo $${rootme}/../../expect/expect ; \
41 else echo expect ; fi`
43 RUNTEST = $(RUNTEST_FOR_TARGET)
47 RUNTEST_FOR_TARGET = `\
48 if [ -f $${srcdir}/../../../dejagnu/runtest ]; then \
49 echo $${srcdir}/../../../dejagnu/runtest; \
51 if [ "$(host_canonical)" = "$(target_canonical)" ]; then \
54 t='$(program_transform_name)'; echo runtest | sed -e '' $$t; \
60 if [ -x ../../../gas/as-new ]; then \
61 echo ../../../gas/as-new ; \
63 echo $(target_alias)-as ; \
67 if [ -x ../../../ld/ld-new ]; then \
68 echo ../../../ld/ld-new ; \
70 echo $(target_alias)-ld ; \
74 if [ -x ../../../sim/mips/run ]; then \
75 echo ../../../sim/mips/run ; \
77 echo $(target_alias)-run ; \
82 check: sanity $(TESTS)
84 @eval echo AS_FOR_TARGET = $(AS_FOR_TARGET)
85 @eval echo LD_FOR_TARGET = $(LD_FOR_TARGET)
86 @eval echo RUN_FOR_TARGET = $(RUN_FOR_TARGET)
90 # Rules for running all the tests, put into three types
91 # exit success, exit fail, print "Hello World"
95 $(RUN_FOR_TARGET) $* > $*.log
98 # Rules for running the tests
100 .SUFFIXES: .u .uue .ok .ok .run .hi .ko .ko
103 ulimit -t 5 ; $(RUN_FOR_TARGET) $*.run > tmp-$*
106 rm -f tmp-$* $*.hi diff-$*
107 ulimit -t 5 ; $(RUN_FOR_TARGET) $*.run > tmp-$*
108 echo 'Hello World!' | diff - tmp-$* > diff-$*
109 cat tmp-$* diff-$* > $*.hi
113 ulimit -t 5 ; $(RUN_FOR_TARGET) $*.run > tmp-$* ; \
114 if [ $$? -eq 47 ] ; then \
122 # Rules for building all the tests and packing them into
126 uuencode < $*.run $*.run > $*.u
127 @echo "Move $*.u $*.uue"
129 uudecode $(srcdir)/$*.uue
131 $(LD_FOR_TARGET) -Ttext 0xa0020000 -o $*.run $*.o
133 $(AS_FOR_TARGET) -I $(srcdir) $(srcdir)/$*.s -o $*.o
140 -rm -f *~ core *.o a.out *.x *.grt *.run tmp-* diff-*
142 # if [ x"${SUBDIRS}" != x ] ; then \
143 # for dir in ${SUBDIRS}; \
146 # if [ -d $$dir ]; then \
147 # (cd $$dir; $(MAKE) clean); \
152 distclean maintainer-clean realclean: clean
154 -rm -f Makefile config.status *-init.exp
155 -rm -fr *.log summary detail *.plog *.sum *.psum site.*
156 # if [ x"${SUBDIRS}" != x ] ; then \
157 # for dir in ${SUBDIRS}; \
160 # if [ -d $$dir ]; then \
161 # (cd $$dir; $(MAKE) distclean); \
166 Makefile : Makefile.in config.status
167 $(SHELL) config.status
169 config.status: configure
170 $(SHELL) config.status --recheck