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









Reply via email to