1# Makefile for regression testing the GNU debugger.
2# Copyright (C) 1992, 1993, 1994, 1995, 2007 Free Software Foundation, Inc.
3
4# This file is part of GDB.
5
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.
10#
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.
15#
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/>.
18
19VPATH = @srcdir@
20srcdir = @srcdir@
21srcroot = $(srcdir)/..
22
23prefix = @prefix@
24exec_prefix = @exec_prefix@
25
26host_alias = @host_alias@
27target_alias = @target_alias@
28program_transform_name = @program_transform_name@
29build_canonical = @build@
30host_canonical = @host@
31target_canonical = @target@
32target_cpu = @target_cpu@
33
34
35SHELL = /bin/sh
36SUBDIRS = @subdirs@
37RPATH_ENVVAR = @RPATH_ENVVAR@
38
39TESTS = \
40	exit47.ko \
41	hello.hi \
42	t-dbt.ok \
43	t-ld-st.ok \
44	t-mac.ok \
45	t-mvtac.ok \
46	t-mvtc.ok \
47	t-msbu.ok \
48	t-mulxu.ok \
49	t-rac.ok \
50	t-rachi.ok \
51	t-rdt.ok \
52	t-rep.ok \
53	t-rte.ok \
54	t-sac.ok \
55	t-sachi.ok \
56	t-sadd.ok \
57	t-slae.ok \
58	t-sp.ok \
59	t-sub2w.ok \
60	t-sub.ok \
61	t-subi.ok \
62	t-ae-ld-d.ok \
63	t-ae-ld-i.ok \
64	t-ae-ld-id.ok \
65	t-ae-ld-im.ok \
66	t-ae-ld-ip.ok \
67	t-ae-ld2w-d.ok \
68	t-ae-ld2w-i.ok \
69	t-ae-ld2w-id.ok \
70	t-ae-ld2w-im.ok \
71	t-ae-ld2w-ip.ok \
72	t-ae-st-d.ok \
73	t-ae-st-i.ok \
74	t-ae-st-id.ok \
75	t-ae-st-im.ok \
76	t-ae-st-ip.ok \
77	t-ae-st-is.ok \
78	t-ae-st2w-d.ok \
79	t-ae-st2w-i.ok \
80	t-ae-st2w-id.ok \
81	t-ae-st2w-im.ok \
82	t-ae-st2w-ip.ok \
83	t-ae-st2w-is.ok \
84	t-mod-ld-pre.ok \
85	t-rie-xx.ok \
86#
87
88AS_FOR_TARGET = `\
89  if [ -x ../../../gas/as-new ]; then \
90    echo ../../../gas/as-new ; \
91  else \
92    echo $(target_alias)-as ; \
93  fi`
94
95LD_FOR_TARGET = `\
96  if [ -x ../../../ld/ld-new ]; then \
97    echo ../../../ld/ld-new ; \
98  else \
99    echo $(target_alias)-ld ; \
100  fi`
101
102RUN_FOR_TARGET = `\
103  if [ -x ../../../sim/d10v/run ]; then \
104    echo ../../../sim/d10v/run ; \
105  else \
106    echo $(target_alias)-run ; \
107  fi`
108
109# Force d10v into operating mode.
110RUNFLAGS_FOR_TARGET=-o
111
112
113check: sanity $(TESTS)
114sanity:
115	@eval echo AS_FOR_TARGET=$(AS_FOR_TARGET)
116	@eval echo LD_FOR_TARGET=$(LD_FOR_TARGET)
117	@eval echo RUN_FOR_TARGET=$(RUN_FOR_TARGET)
118
119clean:
120	rm -f $(TESTS)
121	rm -f *.run *.o
122	rm -f core *.core
123
124# Rules for running the tests
125
126.SUFFIXES: .ok .run .hi .ko .ti
127.run.ok:
128	rm -f tmp-$* $*.hi
129	ulimit -t 5 ; \
130	$(RUN_FOR_TARGET) $(RUNFLAGS_FOR_TARGET) $*.run > tmp-$*
131	mv tmp-$* $*.ok
132.run.hi:
133	rm -f tmp-$* $*.hi diff-$*
134	ulimit -t 5 ; \
135	$(RUN_FOR_TARGET) $(RUNFLAGS_FOR_TARGET) $*.run > tmp-$*
136	echo 'Hello World!' | diff - tmp-$* > diff-$*
137	cat tmp-$* diff-$* > $*.hi
138.run.ko:
139	rm -f tmp-$* $*.ko
140	set +e ; \
141	ulimit -t 5 ; \
142	$(RUN_FOR_TARGET) $(RUNFLAGS_FOR_TARGET) $*.run > tmp-$* ; \
143	if [ $$? -eq 47 ] ; then \
144	  exit 0 ; \
145	else \
146	  exit 1 ; \
147	fi
148	mv tmp-$* $*.ko
149.run.ti:
150	rm -f tmp-$* $*.ti
151	set +e ; \
152	ulimit -t 5 ; \
153	$(RUN_FOR_TARGET) $(RUNFLAGS_FOR_TARGET) $(INTFLAGS_FOR_TARGET) $*.run > tmp-$*
154	test `cat tmp-$* | wc -l` -eq 10 < /dev/null
155	test `grep Tick tmp-$* | wc -l` -eq 10 < /dev/null
156	mv tmp-$* $*.ti
157
158
159# Rules for building the test
160# Preference is for obtaining the executable (.run) from a prebuilt image
161
162.SUFFIXES: .uue .s .S .run
163.uue.run:
164	head $* | grep $*.run > /dev/null
165	uudecode $*.uue
166.run.u:
167	uuencode < $*.run $*.run > $*.u
168.o.run:
169	$(LD_FOR_TARGET) $(LDFLAGS_FOR_TARGET) -o $*.run $*.o
170.s.o:
171	$(AS_FOR_TARGET) $(ASFLAGS_FOR_TARGET) -I$(srcdir) $(srcdir)/$*.s -o $*.o
172.S.o:
173	$(AS_FOR_TARGET) $(ASFLAGS_FOR_TARGET) -I$(srcdir) $(srcdir)/$*.S -o $*.o
174
175
176Makefile: Makefile.in config.status
177	$(SHELL) ./config.status
178
179config.status: configure
180	$(SHELL) ./config.status --recheck
181