postgresql/src/interfaces/perl5/Makefile.PL

108 lines
2.7 KiB
Perl

#-------------------------------------------------------
#
# $Id: Makefile.PL,v 1.18 2001/08/26 22:28:04 petere Exp $
#
# Copyright (c) 1997, 1998 Edmund Mergl
#
#-------------------------------------------------------
use ExtUtils::MakeMaker;
use Config;
use strict;
my $srcdir=$ENV{SRCDIR};
my %opts;
%opts = (
NAME => 'Pg',
VERSION_FROM => "Pg.pm",
OBJECT => "Pg\$(OBJ_EXT)",
# explicit mappings required for VPATH builds
PM => { "$srcdir/Pg.pm" => '$(INST_LIBDIR)/Pg.pm' },
MAN3PODS => { "$srcdir/Pg.pm" => '$(INST_MAN3DIR)/Pg.$(MAN3EXT)' },
);
if (! -d $ENV{POSTGRES_LIB} || ! -d $ENV{POSTGRES_INCLUDE}) {
# Check that we actually are inside the Postgres source tree
if (! -d "../libpq") {
die
"To install Pg separately from the Postgres distribution, you must
set environment variables POSTGRES_LIB and POSTGRES_INCLUDE to point
to where Postgres is installed (often /usr/local/pgsql/{lib,include}).\n";
}
} else {
# Setup for standalone installation when Postgres already is installed.
%opts = (
%opts,
INC => "-I$ENV{POSTGRES_INCLUDE}",
LIBS => ["-L$ENV{POSTGRES_LIB} -lpq"],
);
}
WriteMakefile(%opts);
# Put the proper runpath into the shared object.
sub MY::dynamic_lib {
package MY;
my $inherited= shift->SUPER::dynamic_lib(@_);
my $pglibdir = $ENV{PGLIBDIR};
return $inherited if $pglibdir eq '';
# Remove any misguided attempts to set the runpath.
$inherited =~ s/LD_RUN_PATH=\"\$\(LD_RUN_PATH\)\" //g;
$inherited =~ s/-R\S*//g;
$inherited =~ s/-rpath\S*//g;
my $rpath;
# Note that this could be different from what Makefile.port has
# because a different compiler/linker could be used.
SWITCH: for ($Config::Config{'osname'}) {
/hpux/ and $rpath = "+b $pglibdir", last;
/freebsd/ and $rpath = "-R$pglibdir", last;
/irix/ and $rpath = "-R$pglibdir", last;
/linux/ and $rpath = "-Wl,-rpath,$pglibdir", last;
/netbsd/ and $rpath = "-R$pglibdir", last;
/openbsd/ and $rpath = "-R$pglibdir", last;
/solaris/ and $rpath = "-R$pglibdir", last;
/svr5/ and $rpath = "-R$pglibdir", last;
}
$inherited=~ s,OTHERLDFLAGS =,OTHERLDFLAGS = $rpath , if defined $rpath;
$inherited;
}
# VPATH-aware version of this rule
sub MY::xs_c {
my($self) = shift;
return '' unless $self->needs_linking();
'
.xs.c:
$(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG) $(XSUBPPARGS) $< > $@
';
}
# Delete this rule. We can use the above one.
sub MY::xs_o {
'';
}
# This rule tries to rebuild the Makefile from Makefile.PL. We can do
# that better ourselves.
sub MY::makefile {
'';
}