+# Makefile for regression testing the GNU debugger.
+# Copyright (C) 1992, 93, 1994 Free Software Foundation, Inc.
+
+#This file is part of GDB.
+
+#GDB 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 2, or (at your option)
+#any later version.
+
+#GDB 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 GNU CC; see the file COPYING. If not, write to
+#the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
srcdir = .
prefix = /usr/local
+program_transform_name =
exec_prefix = $(prefix)
bindir = $(exec_prefix)/bin
libdir = $(exec_prefix)/lib
tooldir = $(libdir)/$(target_alias)
-datadir = $(exec_prefix)/lib/deja-gnu
+datadir = $(exec_prefix)/lib/dejagnu
mandir = $(prefix)/man
man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
INSTALL_DATA = $(INSTALL)
CFLAGS = -g
-$(start-sanitize-chill)
+# start-sanitize-chill
CHILLFLAGS = $(CFLAGS)
CHILL_LIB = -lchill
-$(end-sanitize-chill)
+# end-sanitize-chill
+# This should probably be consistent with the top-level Makefile.in,
+# gdb/Makefile.in, and gdb/testsuite/gdb.t2*/Makefile.in, so that "make check"
+# has the same effect no matter where it is run.
CXXFLAGS = -g -O
LINK= ln -s
RUNTEST = runtest
RUNTESTFLAGS =
-CC = ` \
- if [ -f $${rootme}../../gcc/Makefile ] ; then \
- echo $${rootme}../../gcc/xgcc -B$${rootme}../../gcc/; \
+EXPECT = `if [ -f $${rootme}/../../expect/expect ] ; then \
+ echo $${rootme}/../../expect/expect ; \
+ else echo expect ; fi`
+
+RUNTEST_FOR_TARGET = ` \
+ if [ -f $${rootme}/../../dejagnu/site.exp ] ; then \
+ echo $${rootme}/../../dejagnu/runtest ; \
else \
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
- echo cc; \
+ echo $(RUNTEST); \
+ else \
+ t='$(program_transform_name)'; echo runtest | sed -e '' $$t; \
+ fi; \
+ fi`
+
+CC_FOR_TARGET = ` \
+ if [ -f $${rootme}/../../gcc/xgcc ] ; then \
+ echo $${rootme}/../../gcc/xgcc -B$${rootme}/../../gcc/; \
+ else \
+ if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+ echo $(CC); \
else \
t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
fi; \
fi`
-$(start-sanitize-chill)
-CHILL = ` \
- if [ -f $${rootme}../../gcc/Makefile ] ; then \
- echo $${rootme}../../gcc/xgcc -B$${rootme}../../gcc/ -L$${rootme}../../chillrt/; \
+CXX = gcc
+CXX_FOR_TARGET = ` \
+ if [ -f $${rootme}/../../gcc/xgcc ] ; then \
+ echo $${rootme}/../../gcc/xgcc -B$${rootme}/../../gcc/; \
else \
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
- echo gcc; \
+ echo $(CXX); \
else \
t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
fi; \
fi`
-$(end-sanitize-chill)
-CXX = ` \
- if [ -f $${rootme}../../gcc/Makefile ] ; then \
- echo $${rootme}../../gcc/xgcc -B$${rootme}../../gcc/; \
+# start-sanitize-chill
+CHILLFLAGS = $(CFLAGS)
+CHILL = gcc
+CHILL_FOR_TARGET = ` \
+ if [ -f $${rootme}/../../gcc/xgcc ] ; then \
+ echo $${rootme}/../../gcc/xgcc -B$${rootme}/../../gcc/ -L$${rootme}/../../chillrt/; \
else \
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
- echo gcc; \
+ echo $(CC); \
else \
t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
fi; \
fi`
-GDB = `if [ -f $${rootme}../gdb ] ; \
- then echo $${rootme}../gdb ; \
- else echo gdb; fi`
-GDBFLAGS =
+CHILL_LIB = -lchill
-EXPECT = `if [ -f $${rootme}../../expect/expect ] ; \
- then echo $${rootme}../../expect/expect ; \
- else echo expect; fi`
+CHILL = ` \
+ if [ -f $${rootme}/../../gcc/Makefile ] ; then \
+ echo $${rootme}/../../gcc/xgcc -B$${rootme}../../gcc/ -L$${rootme}../../chillrt/; \
+ else \
+ if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+ echo gcc; \
+ else \
+ t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \
+ fi; \
+ fi`
+# end-sanitize-chill
-SUBDIRS=gdb.t00 gdb.t01 gdb.t02 gdb.t03 gdb.t04 gdb.t05 gdb.t06 \
- gdb.t07 gdb.t08 gdb.t09 gdb.t10 gdb.t11 gdb.t12 gdb.t13 gdb.t15 \
- gdb.t16 gdb.t17 gdb.t20 gdb.t21 gdb.t22 gdb.t23 gdb.t30 gdb.t31
+GDB = ` \
+ if [ -f $${rootme}/../gdb ] ; \
+ then echo $${rootme}|sed -e 's@/[^/]*$$@@'|sed -e 's@$$@/gdb@' ; \
+ else echo gdb; \
+ fi`
+
+GDBFLAGS = -nx
#### host, target, and site specific Makefile frags come in here.
-FLAGS_TO_PASS = \
- "CXX=$(CXX)" \
- "CXXFLAGS=$(CXXFLAGS)" \
- "CC=$(CC)" \
- "CFLAGS=$(CFLAGS)" \
- $(start-sanitize-chill)\
- "CHILLFLAGS=$(CHILLFLAGS)" \
- "CHILL=$(CHILL)" \
- "CHILL_LIB=$(CHILL_LIB)" \
- $(end-sanitize-chill)\
- "INSTALL=$(INSTALL)" \
- "INSTALL_DATA=$(INSTALL_DATA)" \
- "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
- "LDFLAGS=$(LDFLAGS)" \
- "LINK=$(LINK)" \
- "LOADLIBES=$(LOADLIBES)" \
- "MAKEINFO=$(MAKEINFO)" \
- "exec_prefix=$(exec_prefix)" \
- "prefix=$(prefix)"
+# 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=$(CFLAGS)" \
+# start-sanitize-chill
+ "CHILLFLAGS=$(CHILLFLAGS)" \
+ 'CHILL=$$(CHILL_FOR_TARGET)' \
+ "CHILL_FOR_TARGET=$(CHILL_FOR_TARGET)" \
+ "CHILL_LIB=$(CHILL_LIB)" \
+# end-sanitize-chill
+ 'CXX=$$(CXX_FOR_TARGET)' \
+ "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
+ "CXXFLAGS=$(CXXFLAGS)" \
+ "MAKEINFO=$(MAKEINFO)" \
+ "INSTALL=$(INSTALL)" \
+ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+ "INSTALL_DATA=$(INSTALL_DATA)" \
+ "LDFLAGS=$(LDFLAGS)" \
+ "LIBS=$(LIBS)" \
+ "EXPECT=${EXPECT}" \
+ "RUNTEST=$(RUNTEST)" \
+ "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
+ "BISON=$(BISON)"
all: subdirs
.NOEXPORT:
INFODIRS=doc
info:
- @rootme=`pwd`/ ; export rootme ; \
- rootsrc=`cd $(srcdir); pwd`/ ; export rootsrc ; \
- $(MAKE) subdir_do DO=info "DODIRS=$(INFODIRS)" $(FLAGS_TO_PASS)
-
install-info:
- @rootme=`pwd`/ ; export rootme ; \
- $(MAKE) subdir_do DO=install-info "DODIRS=$(INFODIRS)" $(FLAGS_TO_PASS)
+dvi:
install:
- -parent=`echo $(datadir)|sed -e 's@/[^/]*$$@@'`; \
- if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi
- -if [ -d $(datadir) ] ; then true ; else mkdir $(datadir) ; fi
- -parent=`echo $(targetdir)|sed -e 's@/[^/]*$$@@'`; \
- if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi
- -if [ -d $(targetdir) ] ; then true ; else mkdir $(targetdir) ; fi
- -for file in ./lib/*.exp; \
- do \
- $(INSTALL_DATA) $$file $(datadir) ; \
- done
- -for file in ./*-init.exp; \
- do \
- $(INSTALL_DATA) $$file $(targetdir) ; \
- done
uninstall: force
-# -rm -f $(datadir)/*.exp
- -rm -fr $(targetdir)
-site.exp: ./config.status
+site.exp: ./config.status Makefile
@echo "Making a new config file..."
-@rm -f ./tmp?
@touch site.exp
@echo "## these variables are automatically generated by make ##" > ./tmp0
@echo "# Do not edit here. If you wish to override these values" >> ./tmp0
@echo "# add them to the last section" >> ./tmp0
- @echo "set host_os ${host_os}" >> ./tmp0
- @echo "set host_alias ${host_alias}" >> ./tmp0
- @echo "set host_cpu ${host_cpu}" >> ./tmp0
- @echo "set host_vendor ${host_vendor}" >> ./tmp0
- @echo "set target_os ${target_os}" >> ./tmp0
- @echo "set target_alias ${target_alias}" >> ./tmp0
- @echo "set target_cpu ${target_cpu}" >> ./tmp0
- @echo "set target_vendor ${target_vendor}" >> ./tmp0
+ @echo "set GDBFLAGS \"${GDBFLAGS}\"" >> ./tmp0
+ @echo "set host_triplet ${host_canonical}" >> ./tmp0
+ @echo "set target_triplet ${target_canonical}" >> ./tmp0
@echo "set srcdir ${srcdir}" >> ./tmp0
- @echo "set exec_prefix ${exec_prefix}" >> ./tmp0
- @echo "set objdir `pwd`" >> ./tmp0
+ @echo "set tool gdb" >> ./tmp0
@echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0
@cat ./tmp0 > site.exp
@cat site.bak | sed \
-e '1,/^## All variables above are.*##/ d' >> site.exp
- @rm -f ./tmp1 ./tmp0
+ -@rm -f ./tmp?
-check: all site.exp
- $(RUNTEST) $(RUNTESTFLAGS) --tool gdb GDB=$(GDB)
+installcheck:
+check: site.exp all just-check
+just-check:
+ rootme=`pwd`; export rootme; \
+ srcdir=${srcdir} ; export srcdir ; \
+ EXPECT=${EXPECT} ; export EXPECT ; \
+ if [ -f $${rootme}/../../expect/expect ] ; then \
+ TCL_LIBRARY=$${srcdir}/../../tcl/library ; \
+ export TCL_LIBRARY ; fi ; \
+ $(RUNTEST_FOR_TARGET) $(RUNTESTFLAGS) --tool gdb GDB=$(GDB) --srcdir $(srcdir)
subdir_do: force
@for i in $(DODIRS); do \
if (rootme=`pwd`/ ; export rootme ; \
rootsrc=`cd $(srcdir); pwd`/ ; export rootsrc ; \
cd ./$$i; \
- $(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \
+ $(MAKE) $(TARGET_FLAGS_TO_PASS) $(DO)) ; then true ; \
else exit 1 ; fi ; \
else true ; fi ; \
done
if [ -d $$dir ]; then \
(rootme=`pwd`/ ; export rootme ; \
rootsrc=`cd $(srcdir); pwd`/ ; export rootsrc ; \
- cd $$dir; $(MAKE) $(FLAGS_TO_PASS)); \
+ cd $$dir; $(MAKE) $(TARGET_FLAGS_TO_PASS)); \
fi; \
done
done
distclean realclean: clean
- -rm -f *~ core
+ -rm -f *~ core *.log *.plog *.sum *.psum site.*
-rm -f Makefile config.status *-init.exp
- -rm -fr *.log summary detail
+ -rm -fr *.log summary detail *.plog *.sum *.psum site.*
for dir in ${SUBDIRS}; \
do \
echo "$$dir:"; \
(cd $$dir; $(MAKE) distclean); \
done
-Makefile : $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
+Makefile : $(srcdir)/Makefile.in $(srcdir)/configure.in $(host_makefile_frag) $(target_makefile_frag)
$(SHELL) ./config.status