1# Makefile for regression testing the GNU debugger.
2# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2002, 2003, 2004
3# Free Software Foundation, Inc.
4
5# This file is part of GDB.
6
7# GDB is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2, or (at your option)
10# any later version.
11
12# GDB is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15# GNU General Public License for more details.
16
17# You should have received a copy of the GNU General Public License
18# along with this program; if not, write to the Free Software
19# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
21VPATH = @srcdir@
22srcdir = @srcdir@
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 = @gdb_target_cpu@
33
34SHELL = @SHELL@
35EXEEXT = @EXEEXT@
36SUBDIRS = @subdirs@
37RPATH_ENVVAR = @RPATH_ENVVAR@
38ALL_SUBDIRS = gdb.ada gdb.arch gdb.asm gdb.base gdb.cp gdb.disasm \
39	gdb.dwarf2 \
40	gdb.fortran gdb.java gdb.mi gdb.objc gdb.threads gdb.trace \
41	$(SUBDIRS)
42
43EXPECT = `if [ -f $${rootme}/../../expect/expect ] ; then \
44          echo $${rootme}/../../expect/expect ; \
45          else echo expect ; fi`
46
47RUNTEST = $(RUNTEST_FOR_TARGET)
48
49RUNTESTFLAGS =
50
51RUNTEST_FOR_TARGET = `\
52  if [ -f $${srcdir}/../../dejagnu/runtest ]; then \
53    echo $${srcdir}/../../dejagnu/runtest; \
54  else \
55    if [ "$(host_canonical)" = "$(target_canonical)" ]; then \
56      echo runtest; \
57    else \
58      t='$(program_transform_name)'; echo runtest | sed -e '' $$t; \
59    fi; \
60  fi`
61
62#### host, target, and site specific Makefile frags come in here.
63
64# The use of $$(x_FOR_TARGET) reduces the command line length by not
65# duplicating the lengthy definition.
66
67TARGET_FLAGS_TO_PASS = \
68        "prefix=$(prefix)" \
69        "exec_prefix=$(exec_prefix)" \
70        "against=$(against)" \
71        'CC=$$(CC_FOR_TARGET)' \
72        "CC_FOR_TARGET=$(CC_FOR_TARGET)" \
73        "CFLAGS=$(TESTSUITE_CFLAGS)" \
74        'CXX=$$(CXX_FOR_TARGET)' \
75        "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
76        "CXXFLAGS=$(CXXFLAGS)" \
77        "MAKEINFO=$(MAKEINFO)" \
78        "INSTALL=$(INSTALL)" \
79        "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
80        "INSTALL_DATA=$(INSTALL_DATA)" \
81        "LDFLAGS=$(LDFLAGS)" \
82        "LIBS=$(LIBS)" \
83        "RUNTEST=$(RUNTEST)" \
84        "RUNTESTFLAGS=$(RUNTESTFLAGS)"
85
86all:
87	@echo "Nothing to be done for all..."
88
89.NOEXPORT:
90INFODIRS=doc
91info:
92install-info:
93dvi:
94html:
95install-html:
96
97install:
98
99uninstall: force
100
101site.exp: ./config.status Makefile
102	@echo "Making a new config file..."
103	-@rm -f ./tmp?
104	@touch site.exp
105	-@mv site.exp site.bak
106	@echo "## these variables are automatically generated by make ##" > ./tmp0
107	@echo "# Do not edit here. If you wish to override these values" >> ./tmp0
108	@echo "# add them to the last section" >> ./tmp0
109	@echo "set host_alias $(host_alias)" >> ./tmp0
110	@echo "set host_triplet ${host_canonical}" >> ./tmp0
111	@echo "set target_alias $(target_alias)" >> ./tmp0
112	@echo "set target_triplet ${target_canonical}" >> ./tmp0
113	@echo "set build_triplet ${build_canonical}" >> ./tmp0
114	@echo "set srcdir ${srcdir}" >> ./tmp0
115	@echo "set tool gdb" >> ./tmp0
116	@echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0
117		@cat ./tmp0 > site.exp
118	@cat site.bak | sed \
119			-e '1,/^## All variables above are.*##/ d' >> site.exp
120	-@rm -f ./tmp?
121
122installcheck:
123
124check: site.exp all just-check
125
126just-check:
127	rootme=`pwd`; export rootme; \
128	srcdir=${srcdir} ; export srcdir ; \
129	EXPECT=${EXPECT} ; export EXPECT ; \
130	EXEEXT=${EXEEXT} ; export EXEEXT ; \
131        $(RPATH_ENVVAR)=$$rootme/../../expect:$$rootme/../../libstdc++:$$rootme/../../tk/unix:$$rootme/../../tcl/unix:$$rootme/../../bfd:$$rootme/../../opcodes:$$$(RPATH_ENVVAR); \
132	export $(RPATH_ENVVAR); \
133	if [ -f $${rootme}/../../expect/expect ] ; then  \
134	  TCL_LIBRARY=$${srcdir}/../../tcl/library ; \
135	  export TCL_LIBRARY ; fi ; \
136	$(RUNTEST) $(RUNTESTFLAGS)
137
138subdir_do: force
139	@for i in $(DODIRS); do \
140		if [ -d ./$$i ] ; then \
141			if (rootme=`pwd`/ ; export rootme ; \
142			    rootsrc=`cd $(srcdir); pwd`/ ; export rootsrc ; \
143				cd ./$$i; \
144				$(MAKE) $(TARGET_FLAGS_TO_PASS) $(DO)) ; then true ; \
145			else exit 1 ; fi ; \
146		else true ; fi ; \
147	done
148
149force:;
150
151subdirs:
152	for dir in ${ALL_SUBDIRS} ; \
153	do \
154		echo "$$dir:" ; \
155		if [ -d $$dir ] ; then \
156			(rootme=`pwd`/ ; export rootme ; \
157			 rootsrc=`cd $(srcdir); pwd`/ ; export rootsrc ; \
158			 cd $$dir; $(MAKE) $(TARGET_FLAGS_TO_PASS)); \
159		fi; \
160	done
161
162clean mostlyclean:
163	-rm -f *~ core *.o a.out xgdb *.x *.grt
164	if [ x"${ALL_SUBDIRS}" != x ] ; then \
165	    for dir in ${ALL_SUBDIRS}; \
166	    do \
167		    echo "$$dir:"; \
168		    if [ -d $$dir ]; then \
169			    (cd $$dir; $(MAKE) clean); \
170		    fi; \
171	    done ; \
172	else true; fi
173
174distclean maintainer-clean realclean: clean
175	-rm -f *~ core
176	-rm -f Makefile config.status *-init.exp
177	-rm -fr *.log summary detail *.plog *.sum *.psum site.*
178	if [ x"${ALL_SUBDIRS}" != x ] ; then \
179	    for dir in ${ALL_SUBDIRS}; \
180	    do \
181		    echo "$$dir:"; \
182		    if [ -d $$dir ]; then \
183			    (cd $$dir; $(MAKE) distclean); \
184		    fi; \
185	    done ; \
186	else true; fi
187
188Makefile : Makefile.in config.status $(host_makefile_frag) $(target_makefile_frag)
189	$(SHELL) config.status
190
191config.status: configure
192	$(SHELL) config.status --recheck
193