From b78f9b496df89ac7bc81b7ff37ca83006c529bda Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Fri, 14 Nov 2008 17:11:40 +0000 Subject: [PATCH] Enable script to generate preproc.y in build process. --- src/interfaces/ecpg/preproc/.cvsignore | 1 + src/interfaces/ecpg/preproc/Makefile | 13 ++++++++----- src/tools/msvc/Solution.pm | 15 ++++++++++++++- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/interfaces/ecpg/preproc/.cvsignore b/src/interfaces/ecpg/preproc/.cvsignore index ae37387ece..b89e319672 100644 --- a/src/interfaces/ecpg/preproc/.cvsignore +++ b/src/interfaces/ecpg/preproc/.cvsignore @@ -1,3 +1,4 @@ +preproc.y preproc.c preproc.h pgc.c diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile index 3cfd52cf0f..75fc31f2b9 100644 --- a/src/interfaces/ecpg/preproc/Makefile +++ b/src/interfaces/ecpg/preproc/Makefile @@ -4,7 +4,7 @@ # # Copyright (c) 1998-2008, PostgreSQL Global Development Group # -# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.137 2008/10/14 09:31:04 meskes Exp $ +# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.138 2008/11/14 17:11:40 meskes Exp $ # #------------------------------------------------------------------------- @@ -38,27 +38,30 @@ preproc.o: $(srcdir)/pgc.c $(srcdir)/preproc.h: $(srcdir)/preproc.c ; -$(srcdir)/preproc.c: preproc.y +$(srcdir)/preproc.c: $(srcdir)/preproc.y ifdef BISON $(BISON) -d $(BISONFLAGS) -o $@ $< else @$(missing) bison $< $@ endif -$(srcdir)/pgc.c: pgc.l +$(srcdir)/pgc.c: $(srcdir)/pgc.l ifdef FLEX $(FLEX) $(FLEXFLAGS) -o'$@' $< else @$(missing) flex $< $@ endif +$(srcdir)/preproc.y: $(top_srcdir)/src/backend/parser/gram.y + $(PERL) $(srcdir)/parse.pl $(srcdir) < $< > $@ + ecpg_keywords.o c_keywords.o keywords.o preproc.o parser.o: preproc.h # instead of maintaining our own list, take the one from the backend keywords.c: % : $(top_srcdir)/src/backend/parser/% rm -f $@ && $(LN_S) $< . -distprep: $(srcdir)/preproc.c $(srcdir)/preproc.h $(srcdir)/pgc.c +distprep: $(srcdir)/preproc.y $(srcdir)/preproc.c $(srcdir)/preproc.h $(srcdir)/pgc.c install: all installdirs $(INSTALL_PROGRAM) ecpg$(X) '$(DESTDIR)$(bindir)' @@ -78,4 +81,4 @@ clean distclean: # want to ship those files in the distribution for people with # inadequate tools. maintainer-clean: distclean - rm -f $(srcdir)/preproc.c $(srcdir)/preproc.h $(srcdir)/pgc.c + rm -f $(srcdir)/preproc.y $(srcdir)/preproc.c $(srcdir)/preproc.h $(srcdir)/pgc.c diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 3c31c63359..2fa7b20909 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -3,7 +3,7 @@ package Solution; # # Package that encapsulates a Visual C++ solution file generation # -# $PostgreSQL: pgsql/src/tools/msvc/Solution.pm,v 1.44 2008/08/16 12:42:27 mha Exp $ +# $PostgreSQL: pgsql/src/tools/msvc/Solution.pm,v 1.45 2008/11/14 17:11:40 meskes Exp $ # use Carp; use strict; @@ -239,6 +239,19 @@ s{PG_VERSION_STR "[^"]+"}{__STRINGIFY(x) #x\n#define __STRINGIFY2(z) __STRINGIFY if ( IsNewer( + 'src\interfaces\ecpg\preproc\preproc.y', + 'src\backend\parser\gram.y' + ) + ) + { + print "Generating preproc.y...\n"; + chdir('src\interfaces\ecpg\preproc'); + system('perl parse.pl < ..\..\..\backend\parser\gram.y > preproc.y'); + chdir('..\..\..\..'); + } + + if ( + IsNewer( 'src\interfaces\ecpg\include\ecpg_config.h', 'src\interfaces\ecpg\include\ecpg_config.h.in' ) -- 2.11.0