diff --git a/src/test/regress/GNUMakefile b/src/test/regress/GNUMakefile new file mode 100644 index 0000000000..7c3ebcc543 --- /dev/null +++ b/src/test/regress/GNUMakefile @@ -0,0 +1,94 @@ +#------------------------------------------------------------------------- +# +# Makefile-- +# Makefile for regress (the regression test) +# +# Copyright (c) 1994, Regents of the University of California +# +# +# IDENTIFICATION +# $Header: /cvsroot/pgsql/src/test/regress/Attic/GNUMakefile,v 1.1 1997/01/18 08:01:30 bryanh Exp $ +# +#------------------------------------------------------------------------- + +SRCDIR= ../.. +include ../../Makefile.global + +CFLAGS+= -I$(LIBPQDIR) -I../../include + +LDADD+= -L$(LIBPQDIR) -lpq + +# +# DLOBJS is the dynamically-loaded object file. The regression test uses +# this when it does a CREATE FUNCTION ... LANGUAGE 'C'). +# +DLOBJS= regress$(DLSUFFIX) + +# +# ... plus test query inputs +# +# INFILES is the files the regression test uses for input. +INFILES= $(DLOBJS) \ + create.sql queries.sql errors.sql destroy.sql security.sql \ + expected.out +# +# plus exports files +# +ifdef EXPSUFF +INFILES+= $(DLOBJS:.o=$(EXPSUFF)) +endif + +# OUTFILES is the files that get created by running the regression test. +OUTFILES= stud_emp.data onek.data regress.out aportal.out + +# +# prepare to run the test (including clean-up after the last run) +# +all: $(INFILES) + rm -f $(OUTFILES) + +# +# run the test +# +runtest: $(INFILES) expected.out + $(SHELL) ./regress.sh 2>&1 | tee regress.out + @echo "ACTUAL RESULTS OF REGRESSION TEST ARE NOW IN FILE regress.out" + +# The expected.input file is part of the distribution. It was made by hand +# from 'regress.out' from a reference run of the regression test, replacing +# installation-dependent things with names like _CWD_. The following rule +# turns those names back into real values for the instant installation to +# create a standard (expected.out) against which to compare regress.out +# from the experimental run. +# +# +expected.out: expected.input + if [ -z "$$USER" ]; then USER=$$LOGNAME; fi; \ + if [ -z "$$USER" ]; then USER=`whoami`; fi; \ + if [ -z "$$USER" ]; then echo 'Cannot deduce $USER.'; exit 1; fi; \ + rm -f expected.out; \ + MYTZ=`date | cut -c21`; \ + C="`pwd`"; \ + sed -e "s:_CWD_:$$C:g" \ + -e "s:_OBJWD_:$$C:g" \ + -e "s:_DLSUFFIX_:$(DLSUFFIX):g" \ + -e "s;\([A-Z][a-z][a-z][^ ]* [A-Z][a-z][a-z] [0-9 ][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9] \)[A-Z]\([A-Z][A-Z]\);\1$$MYTZ\2;g" \ + -e "s;\([A-Z][a-z][a-z][^ ]* [A-Z][a-z][a-z] [0-9 ][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] \)[A-Z]\([A-Z][A-Z] [0-9][0-9][0-9][0-9]\);\1$$MYTZ\2;g" \ + -e "s:_USER_:$$USER:g" < expected.input > expected.out + @echo "YOUR EXPECTED RESULTS ARE NOW IN FILE expected.out." + +%.sql: %.source + if [ -z "$$USER" ]; then USER=$$LOGNAME; fi; \ + if [ -z "$$USER" ]; then USER=`whoami`; fi; \ + if [ -z "$$USER" ]; then echo 'Cannot deduce $$USER.'; exit 1; fi; \ + rm -f $@; \ + C=`pwd`; \ + sed -e "s:_CWD_:$$C:g" \ + -e "s:_OBJWD_:$$C:g" \ + -e "s:_DLSUFFIX_:$(DLSUFFIX):g" \ + -e "s/_USER_/$$USER/g" < $< > $@ + +clean: + rm -f $(INFILES) + rm -f $(OUTFILES) + diff --git a/src/test/regress/Makefile b/src/test/regress/Makefile index 3d3f348a4a..fbb3148861 100644 --- a/src/test/regress/Makefile +++ b/src/test/regress/Makefile @@ -1,92 +1,12 @@ -#------------------------------------------------------------------------- -# -# Makefile-- -# Makefile for regress (the regression test) -# -# Copyright (c) 1994, Regents of the University of California -# -# -# IDENTIFICATION -# $Header: /cvsroot/pgsql/src/test/regress/Makefile,v 1.12 1997/01/05 21:17:36 bryanh Exp $ -# -#------------------------------------------------------------------------- +# The Postgres make files exploit features of GNU make that other makes +# do not have. Because it is a common mistake for users to try to build +# Postgres with a different make, we have this make file that does nothing +# but tell the user to use GNU make. -SRCDIR= ../.. -include ../../Makefile.global - -CFLAGS+= -I$(LIBPQDIR) -I../../include - -# -# DLOBJS is the dynamically-loaded object file. The regression test uses -# this when it does a CREATE FUNCTION ... LANGUAGE 'C'). -# -DLOBJS= regress$(DLSUFFIX) - -# -# ... plus test query inputs -# -# INFILES is the files the regression test uses for input. -INFILES= $(DLOBJS) \ - create.sql queries.sql errors.sql destroy.sql security.sql \ - expected.out -# -# plus exports files -# -ifdef EXPSUFF -INFILES+= $(DLOBJS:.o=$(EXPSUFF)) -endif - -# OUTFILES is the files that get created by running the regression test. -OUTFILES= stud_emp.data onek.data regress.out aportal.out - -# -# prepare to run the test (including clean-up after the last run) -# -all: $(INFILES) - rm -f $(OUTFILES) - -# -# run the test -# -runtest: $(INFILES) expected.out - $(SHELL) ./regress.sh 2>&1 | tee regress.out - @echo "ACTUAL RESULTS OF REGRESSION TEST ARE NOW IN FILE regress.out" - -# The expected.input file is part of the distribution. It was made by hand -# from 'regress.out' from a reference run of the regression test, replacing -# installation-dependent things with names like _CWD_. The following rule -# turns those names back into real values for the instant installation to -# create a standard (expected.out) against which to compare regress.out -# from the experimental run. -# -# -expected.out: expected.input - if [ -z "$$USER" ]; then USER=$$LOGNAME; fi; \ - if [ -z "$$USER" ]; then USER=`whoami`; fi; \ - if [ -z "$$USER" ]; then echo 'Cannot deduce $USER.'; exit 1; fi; \ - rm -f expected.out; \ - MYTZ=`date | cut -c21`; \ - C="`pwd`"; \ - sed -e "s:_CWD_:$$C:g" \ - -e "s:_OBJWD_:$$C:g" \ - -e "s:_DLSUFFIX_:$(DLSUFFIX):g" \ - -e "s;\([A-Z][a-z][a-z][^ ]* [A-Z][a-z][a-z] [0-9 ][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9] \)[A-Z]\([A-Z][A-Z]\);\1$$MYTZ\2;g" \ - -e "s;\([A-Z][a-z][a-z][^ ]* [A-Z][a-z][a-z] [0-9 ][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] \)[A-Z]\([A-Z][A-Z] [0-9][0-9][0-9][0-9]\);\1$$MYTZ\2;g" \ - -e "s:_USER_:$$USER:g" < expected.input > expected.out - @echo "YOUR EXPECTED RESULTS ARE NOW IN FILE expected.out." - -%.sql: %.source - if [ -z "$$USER" ]; then USER=$$LOGNAME; fi; \ - if [ -z "$$USER" ]; then USER=`whoami`; fi; \ - if [ -z "$$USER" ]; then echo 'Cannot deduce $$USER.'; exit 1; fi; \ - rm -f $@; \ - C=`pwd`; \ - sed -e "s:_CWD_:$$C:g" \ - -e "s:_OBJWD_:$$C:g" \ - -e "s:_DLSUFFIX_:$(DLSUFFIX):g" \ - -e "s/_USER_/$$USER/g" < $< > $@ - -clean: - rm -f $(INFILES) - rm -f $(OUTFILES) +# If the user were using GNU make now, this file would not get used because +# GNU make uses a make file named "GNUmakefile" in preference to "Makefile" +# if it exists. Postgres is shipped with a "GNUmakefile". +all install clean dep depend: + @echo "You must use GNU make to use Postgres. It may be installed" + @echo "on your system with the name 'gmake'."