X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=Makefile.PL;h=f0964130fe8c2f1e1f5facd46d40d5a8676a2a93;hb=24621abadbcf4f7bf7cdbc799857b6ad3e144dc0;hp=1522ff5364498468310e9da44976990c57e889b9;hpb=49e79554858c8d7bc8466ab8745670488c10b23f;p=perl-fuse.git diff --git a/Makefile.PL b/Makefile.PL index 1522ff5..f096413 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,8 +1,32 @@ use ExtUtils::MakeMaker; +use POSIX; use Config; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. +# Note: This is a hack. This hack is necessary because MacFUSE's libfuse +# (and libfuse_ino64, by extension) don't link in libiconv. This wouldn't +# be a problem, but it appears the Darwin/OS X dynamic linker won't +# satisfy runtime link dependencies in those libraries from libraries +# imported by our library, and it uses a symbol from libiconv without +# actually linking the library to itself. Awesome. +package MY; +sub test_via_harness { + my($self, $perl, $tests) = @_; + local $_ = $self->SUPER::test_via_harness($perl, $tests); + s/PERL_DL_NONLAZY=1//g if $^O eq 'darwin'; + return $_; +} + +sub test_via_script { + my($self, $perl, $tests) = @_; + local $_ = $self->SUPER::test_via_script($perl, $tests); + s/PERL_DL_NONLAZY=1//g if $^O eq 'darwin'; + return $_; +} + +package main; + my $ver = `fusermount -V`; my $ver2 = `mount_fusefs -V`; chomp(my $ver3 = `mount_fusefs -V 2>&1 | head -n1`); @@ -30,6 +54,9 @@ if ($ver && $ver + 0 < 2.5) { my $inc = '-DFUSE_USE_VERSION=26 ' . `pkg-config --cflags fuse` || '-I ../include -D_FILE_OFFSET_BITS=64'; my $obj = `pkg-config --libs fuse` || (($^O eq 'netbsd') ? '-lrefuse' : '-lfuse'); +if ($^O eq 'darwin' && (uname())[2] =~ /^10\./) { + $obj =~ s/-lfuse/-lfuse_ino64/; +} my $def = '-Wall -g -ggdb'; $def .= ' -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64' if $^O eq 'darwin'; $def .= ' -DPERL_HAS_64BITINT' if $Config{'use64bitint'};