mirror of https://github.com/postgres/postgres
Makefile.shlib system, not MakeMaker.ecpg_big_bison
parent
de1f586f09
commit
7662419f1b
@ -1,98 +0,0 @@ |
|||||||
use ExtUtils::MakeMaker; |
|
||||||
use ExtUtils::Embed; |
|
||||||
use DynaLoader; |
|
||||||
use Config; |
|
||||||
|
|
||||||
# On some platforms you can't build plperl unless libperl is a shared
|
|
||||||
# library. (Actually, it would be enough if code in libperl.a is
|
|
||||||
# compiled to be position-independent, but that is hard to check for
|
|
||||||
# and seems pretty unlikely anyway.) On some platforms it doesn't
|
|
||||||
# matter and they can pass in the --force flag to build anyway.
|
|
||||||
# (Having a shared libperl is still a lot better for efficiency,
|
|
||||||
# though.)
|
|
||||||
|
|
||||||
if ($Config{'useshrplib'} ne 'true' && $ARGV[0] ne '--force') { |
|
||||||
open(OUT, ">Makefile") or die "Can't write Makefile: $!\n";
|
|
||||||
print OUT <<'EndOfMakefile';
|
|
||||||
# Dummy Makefile for use when we can't build plperl
|
|
||||||
|
|
||||||
all: |
|
||||||
@echo ""; \
|
|
||||||
echo "*** Cannot build PL/Perl because libperl is not a shared library." ; \
|
|
||||||
echo "*** You might have to rebuild your Perl installation. Refer to"; \
|
|
||||||
echo "*** the documentation for details."; \
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
install: |
|
||||||
|
|
||||||
clean realclean: |
|
||||||
rm -f Makefile
|
|
||||||
|
|
||||||
EndOfMakefile |
|
||||||
close(OUT);
|
|
||||||
exit(0);
|
|
||||||
} |
|
||||||
|
|
||||||
my $ldopts=ldopts();
|
|
||||||
$ldopts=~s/$Config{ccdlflags}//;
|
|
||||||
|
|
||||||
WriteMakefile( 'NAME' => 'plperl',
|
|
||||||
dynamic_lib => { 'OTHERLDFLAGS' => $ldopts } ,
|
|
||||||
XS => { 'SPI.xs' => 'SPI.c' },
|
|
||||||
OBJECT => 'plperl.o eloglvl.o SPI.o',
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
sub MY::cflags { |
|
||||||
package MY; # so that "SUPER" works right
|
|
||||||
my $inherited = shift->SUPER::cflags(@_);
|
|
||||||
|
|
||||||
#
|
|
||||||
# Hack for building on HPUX (probably should have a general mechanism
|
|
||||||
# for system-specific hints, but for now ...)
|
|
||||||
# The default compiler and flags on this platform is cc -Aa, which
|
|
||||||
# will reject 'long long' declarations that appear in Postgres headers.
|
|
||||||
# Need to select -Ae instead.
|
|
||||||
#
|
|
||||||
if ($Config::Config{'osname'} eq 'hpux') {
|
|
||||||
$inherited =~ s/-Aa/-Ae/;
|
|
||||||
}
|
|
||||||
|
|
||||||
$inherited;
|
|
||||||
} |
|
||||||
|
|
||||||
sub MY::install { |
|
||||||
|
|
||||||
qq[ |
|
||||||
install :: all |
|
||||||
cp \$(INST_DYNAMIC) $ENV{plperl_installdir}
|
|
||||||
]; |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
sub MY::xs_o { |
|
||||||
'';
|
|
||||||
} |
|
||||||
|
|
||||||
sub MY::makefile { |
|
||||||
'';
|
|
||||||
} |
|
||||||
|
|
||||||
# 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) $< > $@
|
|
||||||
'; |
|
||||||
} |
|
||||||
|
|
||||||
# somebody doesn't know how to write make rules...
|
|
||||||
sub MY::c_o { |
|
||||||
package MY; # so that "SUPER" works right
|
|
||||||
my $inherited = shift->SUPER::c_o(@_);
|
|
||||||
$inherited =~ s/\$\*\.\S+/\$\</g;
|
|
||||||
$inherited;
|
|
||||||
} |
|
||||||
Loading…
Reference in new issue