Thu Jan 13 22:58:43 2011: Request 64650 was acted upon. Transaction: Correspondence added by mark.doot...@znix.com Queue: Wx Subject: Re: [rt.cpan.org #64650] [Max OS X 10.5.6] make test had returned bad status, won't install Broken in: 0.98 Severity: Critical Owner: Nobody Requestors: a...@cpan.org Status: new Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=64650 >
Hi, Most Wx users on OSX seem to either build their own Perl for wxPerl use or us MacPorts or a binary distribution. However, to get a working Wx with the installed wxWidgets and Perl I thing the following should work. The wxWidgets libraries contain binaries for ppc and i386 architectures, but by default your Perl tries to build for x86_64 architecture as well. You need to run your Perl in 32 bit mode and build for just ppc and i386 architectures. Put the attached Config_osx.pm in your @INC, then do following commands. export VERSIONER_PERL_PREFER_32_BIT=yes sudo cpan -i ExtUtils::FakeConfig export FAKECONFIG_USE_ARCHITECTURES="i386 ppc" export PERL5OPT=-MConfig_osx sudo cpan -i Wx Regards Mark On 10/01/2011 11:11, Alexander Becker via RT wrote: > Mon Jan 10 06:11:44 2011: Request 64650 was acted upon. > Transaction: Ticket created by ASB > Queue: Wx > Subject: [Max OS X 10.5.6] make test had returned bad status, won't > install > Broken in: 0.98 > Severity: Critical > Owner: Nobody > Requestors: a...@cpan.org > Status: new > Ticket<URL: https://rt.cpan.org/Ticket/Display.html?id=64650> > > > Hi! > > I tried to install Wx here on Mac OS X 10.5.6 x64 with perl v5.10.0 > built for darwin-thread-multi-2level. Please find attached the full output. > > hth, Alex
#!/usr/bin/perl -w package Config_osx; require ExtUtils::FakeConfig; require Config; my $ccflags = $Config::Config{ccflags}; my $cppflags = $Config::Config{cppflags}; my $cc = $Config::Config{cc}; my $ccname = $Config::Config{ccname}; my $ld = $Config::Config{ld}; my $cpp = $Config::Config{cpp}; my $cpprun = $Config::Config{cpprun}; my $cppstdin = $Config::Config{cppstdin}; my $lddlflags = $Config::Config{lddlflags}; my $ldflags = $Config::Config{ldflags}; my $flavour = (defined &ActivePerl::BUILD) ? 'activeperl' : 'standard'; my $osxver = get_osx_major_version(); # Remove -nostdinc option unless(exists($ENV{FAKECONFIG_USE_NOSTDINC}) && $ENV{FAKECONFIG_USE_NOSTDINC}) { $ccflags =~ s/-nostdinc //g; $cppflags =~ s/-nostdinc //g; } # ActivePerl on Snow Leopard + if(($flavour eq 'activeperl') && ( $osxver >= 10 ) ) { $cc = 'gcc-4.0'; $ccname = 'gcc-4.0'; $ld = 'g++-4.0'; $cpp = 'gcc-4.0 -E'; $cpprun = 'gcc-4.0 -E'; $cppstdin = 'gcc-4.0 -E'; } # Architectures if(exists($ENV{FAKECONFIG_USE_ARCHITECTURES}) && $ENV{FAKECONFIG_USE_ARCHITECTURES}) { my @arches = qw( ppc i386 x86_64 ); # arch in $ccflags, $lddlflags, $ldflags for my $arch ( @arches ) { # remove exisiting $ccflags =~ s/-arch $arch //g; $ldflags =~ s/-arch $arch //g; $lddlflags =~ s/-arch $arch //g; # add required if( $ENV{FAKECONFIG_USE_ARCHITECTURES} =~ /$arch/ ) { print qq(Using architecture $arch\n); $ccflags = qq(-arch $arch ) . $ccflags; $ldflags = qq(-arch $arch ) . $ldflags; $lddlflags = qq(-arch $arch ) . $lddlflags; } } } my %values = ( cc => $cc, ccflags => $ccflags, cppflags => $cppflags, ccname => $ccname, ld => $ld, cpp => $cpp, cpprun => $cpprun, cppstdin => $cppstdin, lddlflags => $lddlflags, ldflags => $ldflags, ); ExtUtils::FakeConfig->import( %values ); sub get_osx_major_version { my $verstr = `uname -r`; if( $verstr =~ /^(\d+)/ ) { return $1; } else { die qq(Could not determine OSX version number); } } 1; __DATA__ =head1 NAME Config_osx - compile Mac OS X modules without '-nostdinc' flag =head1 SYNOPSIS perl -MConfig_osx Makefile.PL make make test make install with CPAN.pm/CPANPLUS.pm set PERL5OPT=-MConfig_osx cpanp =head1 DESCRIPTION This module is only useful at Makefile.PL invocation time. It modifies some %Config values allowing compilation of Perl XS modules without passing the '-nostdinc' flag. For current versions of ActivePerl, will also set the required compiler version (gcc-4.0). You may override the -nostdinc exclusion by setting environment variable export FAKECONFIG_USE_NOSTDINC=1 The module also allows you to specify which architectures should be built by setting the environment variable FAKECONFIG_USE_ARCHITECTURES. Allowed architectures are ppc, i386, x86_64 For example, to specify universal 32 bit binaries export FAKECONFIG_USE_ARCHITECTURES="i386 ppc" to specify combined 32 and 64bit intel binaries export FAKECONFIG_USE_ARCHITECTURES="i386 x86_64" =head1 AUTHOR Mark Dootson <mdoot...@cpan.org> =cut