summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut2008-08-29 13:02:33 +0000
committerPeter Eisentraut2008-08-29 13:02:33 +0000
commit62e0977105fc149f50fe9fbce387e325775b55ad (patch)
tree5a1ba39742af85d93fafc72fac8c989b756706f5
parent96e993f32c7e26df069fd2a8c5f5cf746f3f4673 (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.
-rw-r--r--config/programs.m434
-rwxr-xr-xconfigure54
-rw-r--r--configure.in2
-rw-r--r--contrib/cube/.cvsignore1
-rw-r--r--contrib/cube/Makefile16
-rw-r--r--contrib/seg/.cvsignore1
-rw-r--r--contrib/seg/Makefile16
-rw-r--r--doc/src/sgml/installation.sgml36
-rw-r--r--src/Makefile.global.in4
-rw-r--r--src/backend/Makefile17
-rw-r--r--src/backend/bootstrap/.cvsignore1
-rw-r--r--src/backend/bootstrap/Makefile22
-rw-r--r--src/backend/bootstrap/bootscanner.l2
-rw-r--r--src/backend/parser/.cvsignore2
-rw-r--r--src/backend/parser/Makefile17
-rw-r--r--src/backend/parser/keywords.c4
-rw-r--r--src/backend/parser/parser.c4
-rw-r--r--src/backend/parser/scan.l2
-rw-r--r--src/include/Makefile2
-rw-r--r--src/interfaces/ecpg/preproc/Makefile14
-rw-r--r--src/pl/plpgsql/src/.cvsignore2
-rw-r--r--src/pl/plpgsql/src/Makefile20
-rw-r--r--src/pl/plpgsql/src/pl_comp.c2
-rw-r--r--src/pl/plpgsql/src/pl_exec.c1
-rw-r--r--src/pl/plpgsql/src/pl_funcs.c1
-rw-r--r--src/pl/plpgsql/src/pl_handler.c1
-rwxr-xr-xsrc/tools/msvc/clean.bat3
-rwxr-xr-xsrc/tools/msvc/pgbison.bat4
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
diff --git a/configure b/configure
index 042ea1598a..b8a7287efa 100755
--- a/configure
+++ b/configure
@@ -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