diff --git a/src/pl/plperl/GNUmakefile b/src/pl/plperl/GNUmakefile index ec9c6b4ff7..de1ac11407 100644 --- a/src/pl/plperl/GNUmakefile +++ b/src/pl/plperl/GNUmakefile @@ -50,6 +50,9 @@ endif # where to find psql for running the tests PSQLDIR = $(bindir) +# where to find xsubpp for building XS. +XSUBPPDIR = $(shell $(PERL) -e 'use List::Util qw(first); print first { -r "$$_/ExtUtils/xsubpp" } @INC') + include $(top_srcdir)/src/Makefile.shlib @@ -62,7 +65,7 @@ plperl_opmask.h: plperl_opmask.pl SPI.c: SPI.xs - $(PERL) $(perl_privlibexp)/ExtUtils/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@ + $(PERL) $(XSUBPPDIR)/ExtUtils/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@ install: all installdirs install-lib diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index 870bfeef07..92a838d76a 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -12,6 +12,8 @@ use warnings; use Project; use Solution; use Cwd; +use Config; +use List::Util qw(first); use Exporter; our (@ISA, @EXPORT_OK); @@ -91,11 +93,11 @@ sub mkvcbuild $plperl->AddDefine('PLPERL_HAVE_UID_GID'); if (Solution::IsNewer('src\pl\plperl\SPI.c','src\pl\plperl\SPI.xs')) { + my $xsubppdir = first { -e "$_\\ExtUtils\\xsubpp" } @INC; print 'Building src\pl\plperl\SPI.c...' . "\n"; system( $solution->{options}->{perl} . '/bin/perl ' - . $solution->{options}->{perl} - . '/lib/ExtUtils/xsubpp -typemap ' + . "$xsubppdir/ExtUtils/xsubpp -typemap " . $solution->{options}->{perl} . '/lib/ExtUtils/typemap src\pl\plperl\SPI.xs >src\pl\plperl\SPI.c'); if ((!(-f 'src\pl\plperl\SPI.c')) || -z 'src\pl\plperl\SPI.c')