openwrt-packages/lang/perl-inline-c/patches/110-inline_c-make_system_ty...

47 lines
1.4 KiB
Diff

--- a/lib/Inline/C.pm
+++ b/lib/Inline/C.pm
@@ -457,22 +457,28 @@ sub get_maps {
print STDERR "get_maps Stage\n" if $o->{CONFIG}{BUILD_NOISY};
my $typemap = '';
my $file;
- $file = File::Spec->catfile(
- $Config::Config{installprivlib},
- "ExtUtils",
- "typemap",
- );
- $typemap = $file if -f $file;
- $file = File::Spec->catfile(
- $Config::Config{privlibexp}
- ,"ExtUtils","typemap"
- );
- $typemap = $file
- if (not $typemap and -f $file);
- warn "Can't find the default system typemap file"
- if (not $typemap and $^W);
+
+ unless ($ENV{'_INLINE_C_SYSTEM_TYPEMAP_'}) {
+ $file = File::Spec->catfile(
+ $Config::Config{installprivlib},
+ "ExtUtils",
+ "typemap",
+ );
+ $typemap = $file if -f $file;
+ $file = File::Spec->catfile(
+ $Config::Config{privlibexp}
+ ,"ExtUtils","typemap"
+ );
+ $typemap = $file
+ if (not $typemap and -f $file);
+ warn "Can't find the default system typemap file"
+ if (not $typemap and $^W);
- unshift(@{$o->{ILSM}{MAKEFILE}{TYPEMAPS}}, $typemap) if $typemap;
+ unshift(@{$o->{ILSM}{MAKEFILE}{TYPEMAPS}}, $typemap) if $typemap;
+ }
+ else {
+ unshift(@{$o->{ILSM}{MAKEFILE}{TYPEMAPS}}, $ENV{'_INLINE_C_SYSTEM_TYPEMAP_'});
+ }
if (not $o->UNTAINT) {
require FindBin;