aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/ecpg/preproc/.gitignore2
-rw-r--r--src/interfaces/ecpg/preproc/Makefile15
-rw-r--r--src/tools/msvc/Mkvcbuild.pm1
3 files changed, 12 insertions, 6 deletions
diff --git a/src/interfaces/ecpg/preproc/.gitignore b/src/interfaces/ecpg/preproc/.gitignore
index aacfb844bda..38ae2fe4d92 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 07721752c8f..8ceadd112b6 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 b562044fa71..2921d193a16 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');