Обсуждение: 7.1Beta 4&5 - clean build problem with '--with-perl'
On both beta 4 and 5, the configure script is run with --with-perl --with-tcl --with-CXX On a clean build (/usr/local/pgsql directory tree removed), Pg.c fails to build, not finding include file libpq-fe.h and then postgres_ext.h. Linking these two files to /usr/local/pgsql/include causes the build to complete successfully. Include paths on compile line: /usr/local/include /usr/local/pgsql/include /proj/twolf/local/lib/perl5/5.6.0/sun4-solaris/CORE. Machine is an Ultra 5 with Solaris 2.6 Cheers, Rob Robert Creager Senior Software Engineer Client Server Library 303.673.2365 V 303.661.5379 F 888.912.4458 P StorageTek INFORMATION made POWERFUL
"Creager, Robert S" <CreagRS@LOUISVILLE.STORTEK.COM> writes:
> On both beta 4 and 5, the configure script is run with --with-perl
> --with-tcl --with-CXX
> On a clean build (/usr/local/pgsql directory tree removed), Pg.c fails to
> build, not finding include file libpq-fe.h and then postgres_ext.h. Linking
> these two files to /usr/local/pgsql/include causes the build to complete
> successfully. Include paths on compile line: /usr/local/include
> /usr/local/pgsql/include
> /proj/twolf/local/lib/perl5/5.6.0/sun4-solaris/CORE.
Strange. I cannot duplicate this. On my box, the compile line for Pg.c
ends up looking like
cc -c -I../libpq -I../../include -D_HPUX_SOURCE -Aa -I/usr/local/include -O -DVERSION=\"1.8.0\"
-DXS_VERSION=\"1.8.0\"+z -I/opt/perl5/lib/5.00503/PA-RISC2.0/CORE Pg.c
and of course ../libpq and ../../include are exactly where those two
include files live.
I have not tried the scenario of building outside the source tree,
however ... were you doing that?
regards, tom lane
"Creager, Robert S" <CreagRS@LOUISVILLE.STORTEK.COM> writes:
> Alrighty. I should of just looked at the Makefile.PL in the first place...
> I have the environment variables POSTGRES_INCLUDE and POSTGRES_LIB defined,
> so Makefile.PL assumes those directories exist. When it makes, no include
> files... I've included the patch to have the Makefile.PL check for the
> directories existence. I added a '-d' before the $ENV{POSTGRES_???} stuff
> to make sure the directory exists.
> *** Makefile.PL Mon Mar 5 14:31:27 2001
> --- Makefile.PL.org Mon Mar 5 14:25:12 2001
> ***************
> *** 12,18 ****
>
> my %opts;
>
> ! if (! -d $ENV{POSTGRES_LIB} || ! -d $ENV{POSTGRES_INCLUDE}) {
>
> # Check that we actually are inside the Postgres source tree
> if (! -d "../libpq") {
> --- 12,18 ----
>
> my %opts;
>
> ! if (! $ENV{POSTGRES_LIB} || ! $ENV{POSTGRES_INCLUDE}) {
>
> # Check that we actually are inside the Postgres source tree
> if (! -d "../libpq") {
Ah so. That seems like a good solution. Do you think we should also
modify the GNUmakefile to unset POSTGRES_INCLUDE and POSTGRES_LIB when
doing 'make all'? Or would that get in the way of legitimate uses
of these variables?
regards, tom lane