It seems that there are two identically named include files:

U:\postgresql-8.0.0beta2\src\interfaces\libpq>type pg_config_paths.h
#define SYSCONFDIR ""

U:\postgresql-8.0.0beta2\src\port>type pg_config_paths.h
#define PGBINDIR "/usr/local/pgsql/bin"
#define PGSHAREDIR "/usr/local/pgsql/share"
#define SYSCONFDIR "/usr/local/pgsql/etc"
#define INCLUDEDIR "/usr/local/pgsql/include"
#define PKGINCLUDEDIR "/usr/local/pgsql/include"
#define INCLUDEDIRSERVER "/usr/local/pgsql/include/server"
#define LIBDIR "/usr/local/pgsql/lib"
#define PKGLIBDIR "/usr/local/pgsql/lib"
#define LOCALEDIR ""

> -----Original Message-----
> From: Dann Corbit 
> Sent: Wednesday, September 01, 2004 1:30 PM
> To: Dann Corbit; PostgreSQL-development
> Subject: RE: [HACKERS] 8.0 beta 2, configuation for ECPG 
> seems to lack something for MINGW
> 
> 
> I see that these symbols are found in src\port\pg_config_paths.h
> 
> I will try to find out why that file did not get included in path.c
> 
> > -----Original Message-----
> > From: pgsql-hackers-owner@postgresql.org
> > [mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Dann Corbit
> > Sent: Wednesday, September 01, 2004 1:26 PM
> > To: PostgreSQL-development
> > Subject: [HACKERS] 8.0 beta 2, configuation for ECPG seems to 
> > lack something for MINGW
> > 
> > 
> > Probably an error on my part.  I assume that there is some
> > configuration script that is supposed to define the following:
> > 
> > 	INCLUDEDIR
> > 	INCLUDEDIRSERVER
> > 	LIBDIR
> > 	LOCALEDIR
> > 	PGBINDIR
> > 	PGSHAREDIR
> > 	PKGINCLUDEDIR
> > 	PKGLIBDIR
> > 
> > Because of this:
> > 
> > make -C ecpglib all
> > make[4]: Entering directory
> > `/u/postgresql-8.0.0beta2/src/interfaces/ecpg/ecpglib'
> > gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > execute.o execute.c gcc -O2 -fno-strict-aliasing -Wall 
> > -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > typename.o typename.c gcc -O2 -fno-strict-aliasing -Wall 
> > -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > descriptor.o descriptor.c gcc -O2 -fno-strict-aliasing -Wall 
> > -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > data.o data.c gcc -O2 -fno-strict-aliasing -Wall 
> -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > error.o error.c gcc -O2 -fno-strict-aliasing -Wall 
> > -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > prepare.o prepare.c gcc -O2 -fno-strict-aliasing -Wall 
> > -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > memory.o memory.c gcc -O2 -fno-strict-aliasing -Wall 
> > -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > connect.o connect.c gcc -O2 -fno-strict-aliasing -Wall 
> > -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > misc.o misc.c rm -f path.c && ln -s 
> > ../../../../src/port/path.c . gcc -O2 -fno-strict-aliasing 
> > -Wall -Wmissing-prototypes
> > -Wmissing-declarations   -DFRONTEND
> > -I../../../../src/interfaces/ecpg/include
> > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > -I../../../../src/include -I./src/include/port/win32 
> > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > path.o path.c
> > path.c: In function `get_share_path':
> > path.c:198: error: `PGBINDIR' undeclared (first use in this 
> function)
> > path.c:198: error: (Each undeclared identifier is reported only once
> > path.c:198: error: for each function it appears in.)
> > path.c:198: error: `PGSHAREDIR' undeclared (first use in this 
> > function)
> > path.c: In function `get_etc_path':
> > path.c:215: error: `PGBINDIR' undeclared (first use in this 
> function)
> > path.c: In function `get_include_path':
> > path.c:232: error: `PGBINDIR' undeclared (first use in this 
> function)
> > path.c:232: error: `INCLUDEDIR' undeclared (first use in this 
> > function)
> > path.c: In function `get_pkginclude_path':
> > path.c:249: error: `PGBINDIR' undeclared (first use in this 
> function)
> > path.c:249: error: `PKGINCLUDEDIR' undeclared (first use in this
> > function)
> > path.c: In function `get_includeserver_path':
> > path.c:266: error: `PGBINDIR' undeclared (first use in this 
> function)
> > path.c:266: error: `INCLUDEDIRSERVER' undeclared (first use in this
> > function)
> > path.c: In function `get_lib_path':
> > path.c:283: error: `PGBINDIR' undeclared (first use in this 
> function)
> > path.c:283: error: `LIBDIR' undeclared (first use in this function)
> > path.c: In function `get_pkglib_path':
> > path.c:300: error: `PGBINDIR' undeclared (first use in this 
> function)
> > path.c:300: error: `PKGLIBDIR' undeclared (first use in 
> this function)
> > path.c: In function `get_locale_path':
> > path.c:319: error: `PGBINDIR' undeclared (first use in this 
> function)
> > path.c:319: error: `LOCALEDIR' undeclared (first use in 
> this function)
> > make[4]: *** [path.o] Error 1
> > make[4]: Leaving directory 
> > `/u/postgresql-8.0.0beta2/src/interfaces/ecpg/ecpglib'
> > make[3]: *** [all] Error 2
> > make[3]: Leaving directory 
> > `/u/postgresql-8.0.0beta2/src/interfaces/ecpg'
> > make[2]: *** [all] Error 2
> > make[2]: Leaving directory `/u/postgresql-8.0.0beta2/src/interfaces'
> > make[1]: *** [all] Error 2
> > make[1]: Leaving directory `/u/postgresql-8.0.0beta2/src'
> > make: *** [all] Error 2
> > 
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
> > 
> 

Wed, 1 Sep 2004 13:34:17 -0700
"Dann Corbit" <DCorbit@connx.com>
Re: 8.0 beta 2,
	configuation for ECPG seems to lack something for MINGW
Yes, I just realized the problem myself.  The cause is that you ran
win32.mak, creating the SYSCONFDIR-only file, then went to build ecpg
using MinGW.

We really should have a way to prevent such problems.  The issue is that
Unix and MinGW builds use port/pg_config_paths.h with full values, while
the libpq/*.mak files don't have these values (because of no configure
run) and they should be in the libpq directory rather than in the
src/port directory so the build doesn't have to go looking into /port
more than it has to.

What I just applied (attached) is a change that will allow win32.mak
'clean' remove the file so the build of ecpg will recreate it properly
and not see the old version in libpq.  I made the same change in psql.

---------------------------------------------------------------------------

Dann Corbit wrote:
> It seems that there are two identically named include files:
> 
> U:\postgresql-8.0.0beta2\src\interfaces\libpq>type pg_config_paths.h
> #define SYSCONFDIR ""
> 
> U:\postgresql-8.0.0beta2\src\port>type pg_config_paths.h
> #define PGBINDIR "/usr/local/pgsql/bin"
> #define PGSHAREDIR "/usr/local/pgsql/share"
> #define SYSCONFDIR "/usr/local/pgsql/etc"
> #define INCLUDEDIR "/usr/local/pgsql/include"
> #define PKGINCLUDEDIR "/usr/local/pgsql/include"
> #define INCLUDEDIRSERVER "/usr/local/pgsql/include/server"
> #define LIBDIR "/usr/local/pgsql/lib"
> #define PKGLIBDIR "/usr/local/pgsql/lib"
> #define LOCALEDIR ""
> 
> > -----Original Message-----
> > From: Dann Corbit 
> > Sent: Wednesday, September 01, 2004 1:30 PM
> > To: Dann Corbit; PostgreSQL-development
> > Subject: RE: [HACKERS] 8.0 beta 2, configuation for ECPG 
> > seems to lack something for MINGW
> > 
> > 
> > I see that these symbols are found in src\port\pg_config_paths.h
> > 
> > I will try to find out why that file did not get included in path.c
> > 
> > > -----Original Message-----
> > > From: pgsql-hackers-owner@postgresql.org
> > > [mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Dann Corbit
> > > Sent: Wednesday, September 01, 2004 1:26 PM
> > > To: PostgreSQL-development
> > > Subject: [HACKERS] 8.0 beta 2, configuation for ECPG seems to 
> > > lack something for MINGW
> > > 
> > > 
> > > Probably an error on my part.  I assume that there is some
> > > configuration script that is supposed to define the following:
> > > 
> > > 	INCLUDEDIR
> > > 	INCLUDEDIRSERVER
> > > 	LIBDIR
> > > 	LOCALEDIR
> > > 	PGBINDIR
> > > 	PGSHAREDIR
> > > 	PKGINCLUDEDIR
> > > 	PKGLIBDIR
> > > 
> > > Because of this:
> > > 
> > > make -C ecpglib all
> > > make[4]: Entering directory
> > > `/u/postgresql-8.0.0beta2/src/interfaces/ecpg/ecpglib'
> > > gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > execute.o execute.c gcc -O2 -fno-strict-aliasing -Wall 
> > > -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > typename.o typename.c gcc -O2 -fno-strict-aliasing -Wall 
> > > -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > descriptor.o descriptor.c gcc -O2 -fno-strict-aliasing -Wall 
> > > -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > data.o data.c gcc -O2 -fno-strict-aliasing -Wall 
> > -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > error.o error.c gcc -O2 -fno-strict-aliasing -Wall 
> > > -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > prepare.o prepare.c gcc -O2 -fno-strict-aliasing -Wall 
> > > -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > memory.o memory.c gcc -O2 -fno-strict-aliasing -Wall 
> > > -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > connect.o connect.c gcc -O2 -fno-strict-aliasing -Wall 
> > > -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > misc.o misc.c rm -f path.c && ln -s 
> > > ../../../../src/port/path.c . gcc -O2 -fno-strict-aliasing 
> > > -Wall -Wmissing-prototypes
> > > -Wmissing-declarations   -DFRONTEND
> > > -I../../../../src/interfaces/ecpg/include
> > > -I../../../../src/interfaces/libpq -I../../../../src/port 
> > > -I../../../../src/include -I./src/include/port/win32 
> > > -DEXEC_BACKEND "-I../../../../src/include/port/win32"  -c -o 
> > > path.o path.c
> > > path.c: In function `get_share_path':
> > > path.c:198: error: `PGBINDIR' undeclared (first use in this 
> > function)
> > > path.c:198: error: (Each undeclared identifier is reported only once
> > > path.c:198: error: for each function it appears in.)
> > > path.c:198: error: `PGSHAREDIR' undeclared (first use in this 
> > > function)
> > > path.c: In function `get_etc_path':
> > > path.c:215: error: `PGBINDIR' undeclared (first use in this 
> > function)
> > > path.c: In function `get_include_path':
> > > path.c:232: error: `PGBINDIR' undeclared (first use in this 
> > function)
> > > path.c:232: error: `INCLUDEDIR' undeclared (first use in this 
> > > function)
> > > path.c: In function `get_pkginclude_path':
> > > path.c:249: error: `PGBINDIR' undeclared (first use in this 
> > function)
> > > path.c:249: error: `PKGINCLUDEDIR' undeclared (first use in this
> > > function)
> > > path.c: In function `get_includeserver_path':
> > > path.c:266: error: `PGBINDIR' undeclared (first use in this 
> > function)
> > > path.c:266: error: `INCLUDEDIRSERVER' undeclared (first use in this
> > > function)
> > > path.c: In function `get_lib_path':
> > > path.c:283: error: `PGBINDIR' undeclared (first use in this 
> > function)
> > > path.c:283: error: `LIBDIR' undeclared (first use in this function)
> > > path.c: In function `get_pkglib_path':
> > > path.c:300: error: `PGBINDIR' undeclared (first use in this 
> > function)
> > > path.c:300: error: `PKGLIBDIR' undeclared (first use in 
> > this function)
> > > path.c: In function `get_locale_path':
> > > path.c:319: error: `PGBINDIR' undeclared (first use in this 
> > function)
> > > path.c:319: error: `LOCALEDIR' undeclared (first use in 
> > this function)
> > > make[4]: *** [path.o] Error 1
> > > make[4]: Leaving directory 
> > > `/u/postgresql-8.0.0beta2/src/interfaces/ecpg/ecpglib'
> > > make[3]: *** [all] Error 2
> > > make[3]: Leaving directory 
> > > `/u/postgresql-8.0.0beta2/src/interfaces/ecpg'
> > > make[2]: *** [all] Error 2
> > > make[2]: Leaving directory `/u/postgresql-8.0.0beta2/src/interfaces'
> > > make[1]: *** [all] Error 2
> > > make[1]: Leaving directory `/u/postgresql-8.0.0beta2/src'
> > > make: *** [all] Error 2
> > > 
> > > ---------------------------(end of
> > > broadcast)---------------------------
> > > TIP 4: Don't 'kill -9' the postmaster
> > > 
> > 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
>       subscribe-nomail command to majordomo@postgresql.org so that your
>       message can get through to the mailing list cleanly
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Index: src/bin/psql/bcc32.mak
===================================================================
RCS file: /cvsroot/pgsql-server/src/bin/psql/bcc32.mak,v
retrieving revision 1.6
diff -c -c -r1.6 bcc32.mak
*** src/bin/psql/bcc32.mak	1 Sep 2004 23:45:16 -0000	1.6
--- src/bin/psql/bcc32.mak	2 Sep 2004 01:48:29 -0000
***************
*** 81,86 ****
--- 81,87 ----
  	-@erase "$(INTDIR)\psql.ils"
  	-@erase "$(INTDIR)\psql.ilf"
  	-@erase "$(OUTDIR)\psql.exe"
+ 	-@erase "$(INTDIR)\pg_config_paths.h"
  
  pg_config_paths.h: win32.mak
  	echo "#define PGBINDIR "">$@
Index: src/bin/psql/win32.mak
===================================================================
RCS file: /cvsroot/pgsql-server/src/bin/psql/win32.mak,v
retrieving revision 1.18
diff -c -c -r1.18 win32.mak
*** src/bin/psql/win32.mak	1 Sep 2004 23:45:16 -0000	1.18
--- src/bin/psql/win32.mak	2 Sep 2004 01:48:30 -0000
***************
*** 41,46 ****
--- 41,47 ----
  	-@erase "$(INTDIR)\mbprint.obj"
  	-@erase "$(INTDIR)\*psql.pch"
  	-@erase "$(OUTDIR)\psql.exe"
+ 	-@erase "$(INTDIR)\pg_config_paths.h"
  
  pg_config_paths.h: win32.mak
  	echo "#define PGBINDIR "">$@
Index: src/interfaces/libpq/bcc32.mak
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/libpq/bcc32.mak,v
retrieving revision 1.8
diff -c -c -r1.8 bcc32.mak
*** src/interfaces/libpq/bcc32.mak	1 Sep 2004 23:35:16 -0000	1.8
--- src/interfaces/libpq/bcc32.mak	2 Sep 2004 01:48:32 -0000
***************
*** 124,129 ****
--- 124,130 ----
  	-@erase "$(OUTDIR)\blibpqdll.lib"
  	-@erase "$(OUTDIR)\blibpq.dll"
  	-@erase "$(OUTDIR)\blibpq.tds"
+ 	-@erase "$(INTDIR)\pg_config_paths.h"
  
  config: ..\..\include\pg_config.h pthread.h pg_config_paths.h
  
Index: src/interfaces/libpq/win32.mak
===================================================================
RCS file: /cvsroot/pgsql-server/src/interfaces/libpq/win32.mak,v
retrieving revision 1.25
diff -c -c -r1.25 win32.mak
*** src/interfaces/libpq/win32.mak	19 Jun 2004 04:22:17 -0000	1.25
--- src/interfaces/libpq/win32.mak	2 Sep 2004 01:48:33 -0000
***************
*** 75,81 ****
  	-@erase "$(INTDIR)\wchar.obj"
  	-@erase "$(INTDIR)\encnames.obj"
  	-@erase "$(INTDIR)\pthread-win32.obj"
! 
  
  
  config: ..\..\include\pg_config.h pthread.h pg_config_paths.h
--- 75,81 ----
  	-@erase "$(INTDIR)\wchar.obj"
  	-@erase "$(INTDIR)\encnames.obj"
  	-@erase "$(INTDIR)\pthread-win32.obj"
! 	-@erase "$(INTDIR)\pg_config_paths.h"
  
  
  config: ..\..\include\pg_config.h pthread.h pg_config_paths.h
Wed, 1 Sep 2004 21:57:15 -0400 (EDT)
Bruce Momjian <pgman@candle.pha.pa.us>
Re: 8.0 beta 2, configuation for ECPG seems to lack something