diff --git a/src/interfaces/ecpg/preproc/.gitignore b/src/interfaces/ecpg/preproc/.gitignore index aacfb844bd..38ae2fe4d9 100644 --- a/src/interfaces/ecpg/preproc/.gitignore +++ b/src/interfaces/ecpg/preproc/.gitignore @@ -2,5 +2,5 @@ /preproc.c /preproc.h /pgc.c - +/typename.c /ecpg diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile index 07721752c8..8ceadd112b 100644 --- a/src/interfaces/ecpg/preproc/Makefile +++ b/src/interfaces/ecpg/preproc/Makefile @@ -16,13 +16,16 @@ top_builddir = ../../../.. include $(top_builddir)/src/Makefile.global override CPPFLAGS := -I../include -I$(top_srcdir)/src/interfaces/ecpg/include \ - -I. -I$(srcdir) -DECPG_COMPILE \ - $(CPPFLAGS) + -I. -I$(srcdir) \ + -I$(top_srcdir)/src/interfaces/ecpg/ecpglib \ + -I$(libpq_srcdir) \ + -DECPG_COMPILE \ + $(CPPFLAGS) override CFLAGS += $(PTHREAD_CFLAGS) OBJS= preproc.o pgc.o type.o ecpg.o output.o parser.o \ - keywords.o c_keywords.o ecpg_keywords.o ../ecpglib/typename.o descriptor.o variable.o \ + keywords.o c_keywords.o ecpg_keywords.o typename.o descriptor.o variable.o \ $(WIN32RES) # Suppress parallel build to avoid a bug in GNU make 3.82 @@ -36,8 +39,9 @@ all: ecpg ecpg: $(OBJS) | submake-libpgport $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_EX) $^ $(LIBS) $(PTHREAD_LIBS) -o $@$(X) -../ecpglib/typename.o: ../ecpglib/typename.c - $(MAKE) -C $(dir $@) $(notdir $@) +# We symlink typename.c from ecpglib and recompile it here +typename.c: % : $(top_srcdir)/src/interfaces/ecpg/ecpglib/% + rm -f $@ && $(LN_S) $< . # See notes in src/backend/parser/Makefile about the following two rules preproc.h: preproc.c @@ -64,6 +68,7 @@ uninstall: clean distclean: rm -f *.o ecpg$(X) + rm -f typename.c # `make distclean' must not remove preproc.y, preproc.c, preproc.h, or pgc.c # since we want to ship those files in the distribution for people with diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index b562044fa7..2921d193a1 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -291,6 +291,7 @@ sub mkvcbuild my $ecpg = $solution->AddProject('ecpg', 'exe', 'interfaces', 'src/interfaces/ecpg/preproc'); $ecpg->AddIncludeDir('src/interfaces/ecpg/include'); + $ecpg->AddIncludeDir('src/interfaces/ecpg/ecpglib'); $ecpg->AddIncludeDir('src/interfaces/libpq'); $ecpg->AddPrefixInclude('src/interfaces/ecpg/preproc'); $ecpg->AddFiles('src/interfaces/ecpg/preproc', 'pgc.l', 'preproc.y');