diff options
author | Peter Eisentraut | 2008-08-29 13:02:33 +0000 |
---|---|---|
committer | Peter Eisentraut | 2008-08-29 13:02:33 +0000 |
commit | 62e0977105fc149f50fe9fbce387e325775b55ad (patch) | |
tree | 5a1ba39742af85d93fafc72fac8c989b756706f5 | |
parent | 96e993f32c7e26df069fd2a8c5f5cf746f3f4673 (diff) |
Remove all traces that suggest that a non-Bison yacc might be supported, and
change build system to use only Bison. Simplify build rules, make file names
uniform. Don't build the token table header file where it is not needed.
28 files changed, 122 insertions, 163 deletions
diff --git a/config/programs.m4 b/config/programs.m4 index 6eb6b4948d..f792aa8a92 100644 --- a/config/programs.m4 +++ b/config/programs.m4 @@ -1,43 +1,41 @@ # $PostgreSQL$ -# PGAC_PATH_YACC -# -------------- -# Look for Bison, set the output variable YACC to its path if found. +# PGAC_PATH_BISON +# --------------- +# Look for Bison, set the output variable BISON to its path if found. # Reject versions before 1.875 (they have bugs or capacity limits). # Note we do not accept other implementations of yacc. -AC_DEFUN([PGAC_PATH_YACC], +AC_DEFUN([PGAC_PATH_BISON], [# Let the user override the search -if test -z "$YACC"; then - AC_CHECK_PROGS(YACC, ['bison -y']) +if test -z "$BISON"; then + AC_CHECK_PROGS(BISON, bison) fi -if test "$YACC"; then - pgac_yacc_version=`$YACC --version 2>/dev/null | sed q` - AC_MSG_NOTICE([using $pgac_yacc_version]) - if echo "$pgac_yacc_version" | $AWK '{ if ([$]4 < 1.875) exit 0; else exit 1;}' +if test "$BISON"; then + pgac_bison_version=`$BISON --version 2>/dev/null | sed q` + AC_MSG_NOTICE([using $pgac_bison_version]) + if echo "$pgac_bison_version" | $AWK '{ if ([$]4 < 1.875) exit 0; else exit 1;}' then AC_MSG_WARN([ *** The installed version of Bison is too old to use with PostgreSQL. *** Bison version 1.875 or later is required.]) - YACC="" + BISON="" fi fi -if test -z "$YACC"; then +if test -z "$BISON"; then AC_MSG_WARN([ *** Without Bison you will not be able to build PostgreSQL from CVS nor *** change any of the parser definition files. You can obtain Bison from *** a GNU mirror site. (If you are using the official distribution of *** PostgreSQL then you do not need to worry about this, because the Bison -*** output is pre-generated.) To use a different yacc program (possible, -*** but not recommended), set the environment variable YACC before running -*** 'configure'.]) +*** output is pre-generated.)]) fi -# We don't need AC_SUBST(YACC) because AC_PATH_PROG did it -AC_SUBST(YFLAGS) -])# PGAC_PATH_YACC +# We don't need AC_SUBST(BISON) because AC_PATH_PROG did it +AC_SUBST(BISONFLAGS) +])# PGAC_PATH_BISON @@ -718,8 +718,8 @@ STRIP_SHARED_LIB TAR LN_S AWK -YACC -YFLAGS +BISON +BISONFLAGS FLEX FLEXFLAGS PERL @@ -5952,18 +5952,18 @@ done # Let the user override the search -if test -z "$YACC"; then - for ac_prog in 'bison -y' +if test -z "$BISON"; then + for ac_prog in bison do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_prog_YACC+set}" = set; then +if test "${ac_cv_prog_BISON+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$YACC"; then - ac_cv_prog_YACC="$YACC" # Let the user override the test. + if test -n "$BISON"; then + ac_cv_prog_BISON="$BISON" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5972,7 +5972,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_YACC="$ac_prog" + ac_cv_prog_BISON="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5982,26 +5982,26 @@ IFS=$as_save_IFS fi fi -YACC=$ac_cv_prog_YACC -if test -n "$YACC"; then - { echo "$as_me:$LINENO: result: $YACC" >&5 -echo "${ECHO_T}$YACC" >&6; } +BISON=$ac_cv_prog_BISON +if test -n "$BISON"; then + { echo "$as_me:$LINENO: result: $BISON" >&5 +echo "${ECHO_T}$BISON" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi - test -n "$YACC" && break + test -n "$BISON" && break done fi -if test "$YACC"; then - pgac_yacc_version=`$YACC --version 2>/dev/null | sed q` - { echo "$as_me:$LINENO: using $pgac_yacc_version" >&5 -echo "$as_me: using $pgac_yacc_version" >&6;} - if echo "$pgac_yacc_version" | $AWK '{ if ($4 < 1.875) exit 0; else exit 1;}' +if test "$BISON"; then + pgac_bison_version=`$BISON --version 2>/dev/null | sed q` + { echo "$as_me:$LINENO: using $pgac_bison_version" >&5 +echo "$as_me: using $pgac_bison_version" >&6;} + if echo "$pgac_bison_version" | $AWK '{ if ($4 < 1.875) exit 0; else exit 1;}' then { echo "$as_me:$LINENO: WARNING: *** The installed version of Bison is too old to use with PostgreSQL. @@ -6009,29 +6009,25 @@ echo "$as_me: using $pgac_yacc_version" >&6;} echo "$as_me: WARNING: *** The installed version of Bison is too old to use with PostgreSQL. *** Bison version 1.875 or later is required." >&2;} - YACC="" + BISON="" fi fi -if test -z "$YACC"; then +if test -z "$BISON"; then { echo "$as_me:$LINENO: WARNING: *** Without Bison you will not be able to build PostgreSQL from CVS nor *** change any of the parser definition files. You can obtain Bison from *** a GNU mirror site. (If you are using the official distribution of *** PostgreSQL then you do not need to worry about this, because the Bison -*** output is pre-generated.) To use a different yacc program (possible, -*** but not recommended), set the environment variable YACC before running -*** 'configure'." >&5 +*** output is pre-generated.)" >&5 echo "$as_me: WARNING: *** Without Bison you will not be able to build PostgreSQL from CVS nor *** change any of the parser definition files. You can obtain Bison from *** a GNU mirror site. (If you are using the official distribution of *** PostgreSQL then you do not need to worry about this, because the Bison -*** output is pre-generated.) To use a different yacc program (possible, -*** but not recommended), set the environment variable YACC before running -*** 'configure'." >&2;} +*** output is pre-generated.)" >&2;} fi -# We don't need AC_SUBST(YACC) because AC_PATH_PROG did it +# We don't need AC_SUBST(BISON) because AC_PATH_PROG did it { echo "$as_me:$LINENO: checking for flex" >&5 @@ -26600,8 +26596,8 @@ for ac_last_try in false false false false false :; do TAR!$TAR$ac_delim LN_S!$LN_S$ac_delim AWK!$AWK$ac_delim -YACC!$YACC$ac_delim -YFLAGS!$YFLAGS$ac_delim +BISON!$BISON$ac_delim +BISONFLAGS!$BISONFLAGS$ac_delim FLEX!$FLEX$ac_delim FLEXFLAGS!$FLEXFLAGS$ac_delim PERL!$PERL$ac_delim diff --git a/configure.in b/configure.in index b358e49c9d..9976c27384 100644 --- a/configure.in +++ b/configure.in @@ -783,7 +783,7 @@ AC_PATH_PROG(TAR, tar) AC_PROG_LN_S AC_PROG_AWK -PGAC_PATH_YACC +PGAC_PATH_BISON PGAC_PATH_FLEX PGAC_PATH_PERL diff --git a/contrib/cube/.cvsignore b/contrib/cube/.cvsignore index fe92b5e14f..19ecc85b58 100644 --- a/contrib/cube/.cvsignore +++ b/contrib/cube/.cvsignore @@ -1,3 +1,2 @@ cubeparse.c -cubeparse.h cubescan.c diff --git a/contrib/cube/Makefile b/contrib/cube/Makefile index 6240e48931..066ebd64dc 100644 --- a/contrib/cube/Makefile +++ b/contrib/cube/Makefile @@ -26,15 +26,9 @@ endif # cubescan is compiled as part of cubeparse cubeparse.o: $(srcdir)/cubescan.c -# See notes in src/backend/parser/Makefile about the following two rules - -$(srcdir)/cubeparse.c: $(srcdir)/cubeparse.h ; - -$(srcdir)/cubeparse.h: cubeparse.y -ifdef YACC - $(YACC) -d $(YFLAGS) $< - mv -f y.tab.c $(srcdir)/cubeparse.c - mv -f y.tab.h $(srcdir)/cubeparse.h +$(srcdir)/cubeparse.c: cubeparse.y +ifdef BISON + $(BISON) $(BISONFLAGS) -o $@ $< else @$(missing) bison $< $@ endif @@ -46,7 +40,7 @@ else @$(missing) flex $< $@ endif -distprep: $(srcdir)/cubeparse.c $(srcdir)/cubeparse.h $(srcdir)/cubescan.c +distprep: $(srcdir)/cubeparse.c $(srcdir)/cubescan.c maintainer-clean: - rm -f $(srcdir)/cubeparse.c $(srcdir)/cubeparse.h $(srcdir)/cubescan.c + rm -f $(srcdir)/cubeparse.c $(srcdir)/cubescan.c diff --git a/contrib/seg/.cvsignore b/contrib/seg/.cvsignore index e69a249aec..aa740d3474 100644 --- a/contrib/seg/.cvsignore +++ b/contrib/seg/.cvsignore @@ -1,3 +1,2 @@ segparse.c -segparse.h segscan.c diff --git a/contrib/seg/Makefile b/contrib/seg/Makefile index 124dbf17f1..83950a0ba6 100644 --- a/contrib/seg/Makefile +++ b/contrib/seg/Makefile @@ -23,15 +23,9 @@ endif # segscan is compiled as part of segparse segparse.o: $(srcdir)/segscan.c -# See notes in src/backend/parser/Makefile about the following two rules - -$(srcdir)/segparse.c: $(srcdir)/segparse.h ; - -$(srcdir)/segparse.h: segparse.y -ifdef YACC - $(YACC) -d $(YFLAGS) $< - mv -f y.tab.c $(srcdir)/segparse.c - mv -f y.tab.h $(srcdir)/segparse.h +$(srcdir)/segparse.c: segparse.y +ifdef BISON + $(BISON) $(BISONFLAGS) -o $@ $< else @$(missing) bison $< $@ endif @@ -43,7 +37,7 @@ else @$(missing) flex $< $@ endif -distprep: $(srcdir)/segparse.c $(srcdir)/segparse.h $(srcdir)/segscan.c +distprep: $(srcdir)/segparse.c $(srcdir)/segscan.c maintainer-clean: - rm -f $(srcdir)/segparse.c $(srcdir)/segparse.h $(srcdir)/segscan.c + rm -f $(srcdir)/segparse.c $(srcdir)/segscan.c diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 1438269b34..00870721aa 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -277,6 +277,9 @@ su - postgres <primary>flex</primary> </indexterm> <indexterm> + <primary>lex</primary> + </indexterm> + <indexterm> <primary>bison</primary> </indexterm> <indexterm> @@ -287,10 +290,8 @@ su - postgres are needed to build a CVS checkout or if you changed the actual scanner and parser definition files. If you need them, be sure to get <application>Flex</> 2.5.4 or later and - <application>Bison</> 1.875 or later. Other <application>yacc</> - programs can sometimes be used, but doing so requires extra - effort and is not recommended. Other <application>lex</> - programs will definitely not work. + <application>Bison</> 1.875 or later. Other <application>lex</> + and <application>yacc</> programs cannot be used. </para> </listitem> </itemizedlist> @@ -1342,6 +1343,15 @@ su - postgres <variablelist> <varlistentry> + <term><envar>BISON</envar></term> + <listitem> + <para> + Bison program + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><envar>CC</envar></term> <listitem> <para> @@ -1396,6 +1406,15 @@ su - postgres </varlistentry> <varlistentry> + <term><envar>FLEX</envar></term> + <listitem> + <para> + Flex program + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><envar>LDFLAGS</envar></term> <listitem> <para> @@ -1462,15 +1481,6 @@ su - postgres </para> </listitem> </varlistentry> - - <varlistentry> - <term><envar>YACC</envar></term> - <listitem> - <para> - Yacc program (<literal>bison -y</literal> if using Bison) - </para> - </listitem> - </varlistentry> </variablelist> </para> </step> diff --git a/src/Makefile.global.in b/src/Makefile.global.in index f6a8de7d44..7e6ae3333d 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -216,8 +216,8 @@ CFLAGS = @CFLAGS@ # Kind-of compilers -YACC = @YACC@ -YFLAGS = @YFLAGS@ +BISON = @BISON@ +BISONFLAGS = @BISONFLAGS@ $(YFLAGS) FLEX = @FLEX@ FLEXFLAGS = @FLEXFLAGS@ $(LFLAGS) DTRACE = @DTRACE@ diff --git a/src/backend/Makefile b/src/backend/Makefile index badc0f14b1..b8ac4d1292 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -105,7 +105,7 @@ endif endif # aix # Update the commonly used headers before building the subdirectories -$(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/parse.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/probes.h +$(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/probes.h # The postgres.o target is needed by the rule in Makefile.global that @@ -118,8 +118,8 @@ postgres.o: $(OBJS) # the make files in our subdirectories. Note that it's important we # match the dependencies shown in the subdirectory makefiles! -$(srcdir)/parser/parse.h: parser/gram.y - $(MAKE) -C parser parse.h +$(srcdir)/parser/gram.h: parser/gram.y + $(MAKE) -C parser gram.h utils/fmgroids.h: utils/Gen_fmgrtab.sh $(top_srcdir)/src/include/catalog/pg_proc.h $(MAKE) -C utils fmgroids.h @@ -131,7 +131,7 @@ utils/probes.h: utils/probes.d # we can cut down on the -I options. Also, a symlink is automatically # up to date when we update the base file. -$(top_builddir)/src/include/parser/parse.h: $(srcdir)/parser/parse.h +$(top_builddir)/src/include/parser/gram.h: $(srcdir)/parser/gram.h prereqdir=`cd $(dir $<) >/dev/null && pwd` && \ cd $(dir $@) && rm -f $(notdir $@) && \ $(LN_S) "$$prereqdir/$(notdir $<)" . @@ -154,8 +154,8 @@ endif ########################################################################## distprep: - $(MAKE) -C parser gram.c parse.h scan.c - $(MAKE) -C bootstrap bootparse.c bootstrap_tokens.h bootscanner.c + $(MAKE) -C parser gram.c gram.h scan.c + $(MAKE) -C bootstrap bootparse.c bootscanner.c $(MAKE) -C utils/misc guc-file.c @@ -239,7 +239,7 @@ endif clean: rm -f $(LOCALOBJS) postgres$(X) $(POSTGRES_IMP) \ - $(top_srcdir)/src/include/parser/parse.h \ + $(top_srcdir)/src/include/parser/gram.h \ $(top_builddir)/src/include/utils/fmgroids.h ifeq ($(PORTNAME), cygwin) rm -f postgres.dll postgres.def libpostgres.a @@ -254,10 +254,9 @@ distclean: clean maintainer-clean: distclean rm -f $(srcdir)/bootstrap/bootparse.c \ $(srcdir)/bootstrap/bootscanner.c \ - $(srcdir)/bootstrap/bootstrap_tokens.h \ $(srcdir)/parser/gram.c \ $(srcdir)/parser/scan.c \ - $(srcdir)/parser/parse.h \ + $(srcdir)/parser/gram.h \ $(srcdir)/utils/misc/guc-file.c diff --git a/src/backend/bootstrap/.cvsignore b/src/backend/bootstrap/.cvsignore index 511777ca30..5201be9886 100644 --- a/src/backend/bootstrap/.cvsignore +++ b/src/backend/bootstrap/.cvsignore @@ -1,3 +1,2 @@ bootparse.c -bootstrap_tokens.h bootscanner.c diff --git a/src/backend/bootstrap/Makefile b/src/backend/bootstrap/Makefile index b9e18b6fd1..8b3810132b 100644 --- a/src/backend/bootstrap/Makefile +++ b/src/backend/bootstrap/Makefile @@ -20,15 +20,9 @@ include $(top_srcdir)/src/backend/common.mk # bootscanner is compiled as part of bootparse bootparse.o: $(srcdir)/bootscanner.c -# See notes in src/backend/parser/Makefile about the following two rules - -$(srcdir)/bootparse.c: $(srcdir)/bootstrap_tokens.h ; - -$(srcdir)/bootstrap_tokens.h: bootparse.y -ifdef YACC - $(YACC) -d $(YFLAGS) $< - mv -f y.tab.c $(srcdir)/bootparse.c - mv -f y.tab.h $(srcdir)/bootstrap_tokens.h +$(srcdir)/bootparse.c: bootparse.y +ifdef BISON + $(BISON) $(BISONFLAGS) -o $@ $< else @$(missing) bison $< $@ endif @@ -40,12 +34,6 @@ else @$(missing) flex $< $@ endif -# Force these dependencies to be known even without dependency info built: -bootstrap.o bootparse.o: $(srcdir)/bootstrap_tokens.h - -# bootparse.c, bootstrap_tokens.h, and bootscanner.c are in the distribution -# tarball, so they are not cleaned here. -clean: -# And the garbage that might have been left behind by partial build: - @rm -f y.tab.h y.tab.c y.output lex.yy.c +# bootparse.c and bootscanner.c are in the distribution tarball, so +# they are not cleaned here. diff --git a/src/backend/bootstrap/bootscanner.l b/src/backend/bootstrap/bootscanner.l index f82e0e9f91..43a400f722 100644 --- a/src/backend/bootstrap/bootscanner.l +++ b/src/backend/bootstrap/bootscanner.l @@ -37,7 +37,7 @@ #include "utils/rel.h" /* Not needed now that this file is compiled as part of bootparse. */ -/* #include "bootstrap_tokens.h" */ +/* #include "bootparse.h" */ /* Avoid exit() on fatal scanner errors (a bit ugly -- see yy_fatal_error) */ diff --git a/src/backend/parser/.cvsignore b/src/backend/parser/.cvsignore index 84c828f3bf..6545728c5c 100644 --- a/src/backend/parser/.cvsignore +++ b/src/backend/parser/.cvsignore @@ -1,3 +1,3 @@ -parse.h +gram.h gram.c scan.c diff --git a/src/backend/parser/Makefile b/src/backend/parser/Makefile index 70c5045cdb..2d6eccf4c6 100644 --- a/src/backend/parser/Makefile +++ b/src/backend/parser/Makefile @@ -32,13 +32,11 @@ gram.o: $(srcdir)/scan.c # important, otherwise make will choose the built-in rule for # gram.y=>gram.c. -$(srcdir)/gram.c: $(srcdir)/parse.h ; +$(srcdir)/gram.h: $(srcdir)/gram.c ; -$(srcdir)/parse.h: gram.y -ifdef YACC - $(YACC) -d $(YFLAGS) $< - mv -f y.tab.c $(srcdir)/gram.c - mv -f y.tab.h $(srcdir)/parse.h +$(srcdir)/gram.c: gram.y +ifdef BISON + $(BISON) -d $(BISONFLAGS) -o $@ $< else @$(missing) bison $< $@ endif @@ -53,11 +51,8 @@ endif # Force these dependencies to be known even without dependency info built: -gram.o keywords.o parser.o: $(srcdir)/parse.h +gram.o keywords.o parser.o: $(srcdir)/gram.h -# gram.c, parse.h, and scan.c are in the distribution tarball, so they +# gram.c, gram.h, and scan.c are in the distribution tarball, so they # are not cleaned here. -clean: -# And the garbage that might have been left behind by partial build: - @rm -f y.tab.h y.tab.c y.output lex.yy.c diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c index 4216a46fa0..b30a478046 100644 --- a/src/backend/parser/keywords.c +++ b/src/backend/parser/keywords.c @@ -22,7 +22,7 @@ #include <ctype.h> /* - * This macro definition overrides the YYSTYPE union definition in parse.h. + * This macro definition overrides the YYSTYPE union definition in gram.h. * We don't need that struct in this file, and including the real definition * would require sucking in some backend-only include files. */ @@ -30,7 +30,7 @@ #include "parser/keywords.h" #ifndef ECPG_COMPILE -#include "parser/parse.h" +#include "parser/gram.h" #else #include "preproc.h" #endif diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c index d0894f3145..bd2689a8fe 100644 --- a/src/backend/parser/parser.c +++ b/src/backend/parser/parser.c @@ -21,8 +21,8 @@ #include "postgres.h" -#include "parser/gramparse.h" /* required before parser/parse.h! */ -#include "parser/parse.h" +#include "parser/gramparse.h" /* required before parser/gram.h! */ +#include "parser/gram.h" #include "parser/parser.h" diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index 012b120a9e..0480965c38 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -36,7 +36,7 @@ #include "parser/gramparse.h" #include "parser/keywords.h" /* Not needed now that this file is compiled as part of gram.y */ -/* #include "parser/parse.h" */ +/* #include "parser/gram.h" */ #include "parser/scansup.h" #include "mb/pg_wchar.h" diff --git a/src/include/Makefile b/src/include/Makefile index cbaf451216..62edd3a596 100644 --- a/src/include/Makefile +++ b/src/include/Makefile @@ -61,7 +61,7 @@ uninstall: clean: - rm -f utils/fmgroids.h parser/parse.h utils/probes.h + rm -f utils/fmgroids.h parser/gram.h utils/probes.h distclean maintainer-clean: clean rm -f pg_config.h dynloader.h pg_config_os.h stamp-h diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile index e83860d920..29155324be 100644 --- a/src/interfaces/ecpg/preproc/Makefile +++ b/src/interfaces/ecpg/preproc/Makefile @@ -36,13 +36,11 @@ ecpg: $(OBJS) # pgc is compiled as part of preproc preproc.o: $(srcdir)/pgc.c -$(srcdir)/preproc.c: $(srcdir)/preproc.h ; +$(srcdir)/preproc.h: $(srcdir)/preproc.c ; -$(srcdir)/preproc.h: preproc.y -ifdef YACC - $(YACC) -d $(YFLAGS) $< - mv -f y.tab.c $(srcdir)/preproc.c - mv -f y.tab.h $(srcdir)/preproc.h +$(srcdir)/preproc.c: preproc.y +ifdef BISON + $(BISON) -d $(BISONFLAGS) -o $@ $< else @$(missing) bison $< $@ endif @@ -74,10 +72,8 @@ uninstall: clean distclean: rm -f keywords.c *.o ecpg$(X) -# garbage from partial builds - @rm -f y.tab.c y.tab.h # garbage from development - @rm -f core a.out *.output *.tab.c + @rm -f core a.out # `make clean' does not remove preproc.c, preproc.h, or pgc.c since we # want to ship those files in the distribution for people with diff --git a/src/pl/plpgsql/src/.cvsignore b/src/pl/plpgsql/src/.cvsignore index 8625a9b634..e3b861c6fe 100644 --- a/src/pl/plpgsql/src/.cvsignore +++ b/src/pl/plpgsql/src/.cvsignore @@ -1,3 +1,3 @@ pl_gram.c -pl.tab.h +pl_gram.h pl_scan.c diff --git a/src/pl/plpgsql/src/Makefile b/src/pl/plpgsql/src/Makefile index 1a046d24c5..48ea523388 100644 --- a/src/pl/plpgsql/src/Makefile +++ b/src/pl/plpgsql/src/Makefile @@ -33,20 +33,18 @@ uninstall: uninstall-lib # Force these dependencies to be known even without dependency info built: -pl_gram.o pl_handler.o pl_comp.o pl_exec.o pl_funcs.o: plpgsql.h $(srcdir)/pl.tab.h +pl_gram.o pl_handler.o pl_comp.o pl_exec.o pl_funcs.o: plpgsql.h $(srcdir)/pl_gram.h # pl_scan is compiled as part of pl_gram pl_gram.o: $(srcdir)/pl_scan.c # See notes in src/backend/parser/Makefile about the following two rules -$(srcdir)/pl_gram.c: $(srcdir)/pl.tab.h ; +$(srcdir)/pl_gram.h: $(srcdir)/pl_gram.c ; -$(srcdir)/pl.tab.h: gram.y -ifdef YACC - $(YACC) -d $(YFLAGS) $< - mv -f y.tab.c $(srcdir)/pl_gram.c - mv -f y.tab.h $(srcdir)/pl.tab.h +$(srcdir)/pl_gram.c: gram.y +ifdef BISON + $(BISON) -d $(BISONFLAGS) -o $@ $< else @$(missing) bison $< $@ endif @@ -62,14 +60,12 @@ else @$(missing) flex $< $@ endif -distprep: $(srcdir)/pl_scan.c $(srcdir)/pl.tab.h $(srcdir)/pl_gram.c +distprep: $(srcdir)/pl_scan.c $(srcdir)/pl_gram.h $(srcdir)/pl_gram.c -# pl_gram.c, pl.tab.h, and pl_scan.c are in the distribution tarball, +# pl_gram.c, pl_gram.h, and pl_scan.c are in the distribution tarball, # so they are not cleaned here. clean distclean: clean-lib rm -f $(OBJS) -# And the garbage that might have been left behind by partial build: - @rm -f y.tab.h y.tab.c y.output lex.yy.c maintainer-clean: clean - rm -f $(srcdir)/pl_gram.c $(srcdir)/pl.tab.h $(srcdir)/pl_scan.c + rm -f $(srcdir)/pl_gram.c $(srcdir)/pl_gram.h $(srcdir)/pl_scan.c diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c index ae1297e1aa..857c9c14de 100644 --- a/src/pl/plpgsql/src/pl_comp.c +++ b/src/pl/plpgsql/src/pl_comp.c @@ -17,7 +17,7 @@ #include <ctype.h> -#include "pl.tab.h" +#include "pl_gram.h" #include "catalog/namespace.h" #include "catalog/pg_attrdef.h" diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c index 1165ace62f..08f2f16cb7 100644 --- a/src/pl/plpgsql/src/pl_exec.c +++ b/src/pl/plpgsql/src/pl_exec.c @@ -14,7 +14,6 @@ */ #include "plpgsql.h" -#include "pl.tab.h" #include <ctype.h> diff --git a/src/pl/plpgsql/src/pl_funcs.c b/src/pl/plpgsql/src/pl_funcs.c index fa99631d1d..74d9c56cba 100644 --- a/src/pl/plpgsql/src/pl_funcs.c +++ b/src/pl/plpgsql/src/pl_funcs.c @@ -14,7 +14,6 @@ */ #include "plpgsql.h" -#include "pl.tab.h" #include <ctype.h> diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c index 6d209ad940..51c1214c32 100644 --- a/src/pl/plpgsql/src/pl_handler.c +++ b/src/pl/plpgsql/src/pl_handler.c @@ -14,7 +14,6 @@ */ #include "plpgsql.h" -#include "pl.tab.h" #include "catalog/pg_proc.h" #include "catalog/pg_type.h" diff --git a/src/tools/msvc/clean.bat b/src/tools/msvc/clean.bat index 23098feceb..c024b90003 100755 --- a/src/tools/msvc/clean.bat +++ b/src/tools/msvc/clean.bat @@ -18,7 +18,7 @@ if exist src\backend\win32ver.rc del /q src\backend\win32ver.rc REM Delete files created with GenerateFiles() in Solution.pm if exist src\include\pg_config.h del /q src\include\pg_config.h if exist src\include\pg_config_os.h del /q src\include\pg_config_os.h -if %DIST%==1 if exist src\backend\parser\parse.h del /q src\backend\parser\parse.h +if %DIST%==1 if exist src\backend\parser\gram.h del /q src\backend\parser\gram.h if exist src\include\utils\fmgroids.h del /q src\include\utils\fmgroids.h if exist src\include\utils\probes.h del /q src\include\utils\probes.h @@ -31,7 +31,6 @@ if %DIST%==1 if exist src\backend\parser\scan.c del /q src\backend\parser\scan.c if %DIST%==1 if exist src\backend\parser\gram.c del /q src\backend\parser\gram.c if %DIST%==1 if exist src\backend\bootstrap\bootscanner.c del /q src\backend\bootstrap\bootscanner.c if %DIST%==1 if exist src\backend\bootstrap\bootparse.c del /q src\backend\bootstrap\bootparse.c -if %DIST%==1 if exist src\backend\bootstrap\bootstrap_tokens.h del /q src\backend\bootstrap\bootstrap_tokens.h if %DIST%==1 if exist src\backend\utils\misc\guc-file.c del /q src\backend\utils\misc\guc-file.c diff --git a/src/tools/msvc/pgbison.bat b/src/tools/msvc/pgbison.bat index b7ba958a02..5f3a67c570 100755 --- a/src/tools/msvc/pgbison.bat +++ b/src/tools/msvc/pgbison.bat @@ -15,8 +15,8 @@ if %BV% GEQ 2.2 goto bisonok goto nobison :bisonok -if "%1" == "src\backend\parser\gram.y" call :generate %1 src\backend\parser\gram.c src\backend\parser\parse.h -if "%1" == "src\backend\bootstrap\bootparse.y" call :generate %1 src\backend\bootstrap\bootparse.c src\backend\bootstrap\bootstrap_tokens.h +if "%1" == "src\backend\parser\gram.y" call :generate %1 src\backend\parser\gram.c src\backend\parser\gram.h +if "%1" == "src\backend\bootstrap\bootparse.y" call :generate %1 src\backend\bootstrap\bootparse.c if "%1" == "src\pl\plpgsql\src\gram.y" call :generate %1 src\pl\plpgsql\src\pl_gram.c src\pl\plpgsql\src\pl.tab.h if "%1" == "src\interfaces\ecpg\preproc\preproc.y" call :generate %1 src\interfaces\ecpg\preproc\preproc.c src\interfaces\ecpg\preproc\preproc.h if "%1" == "contrib\cube\cubeparse.y" call :generate %1 contrib\cube\cubeparse.c contrib\cube\cubeparse.h |