I just had to build PDL-2.4.7 for my work and also came across the slatec issue. My solution involved getting the latest gcc build (which includes gfortran) from hpc.sourceforge.net and just untar that as described on hpc. This build defaults to 64-bit and works fine with the system perl.
Additional snag on my system was that EU:F77 wanted to default to g77 (which is also on my system). I had to specifically replace 'use ExtUtils::F77' with "use ExtUtils::F77 qw/Darwin GFortran/" in the relevant Makefile.PLs (slatec, minuit) and then it worked. Christian On 16/08/2010, at 1:26 PM, Tim Jenness wrote: > The build is just the same as for Linux. The only difference is that when > installing from CPAN it does not build for me because the CPAN build tree > seems to go into ~/Library/Application Support/.cpan and PDL won't build with > a space in the name. Once I move to a different directory things are fine. > The patch at the end of this mail fixes some of the things but there is a > remaining issue that the Makefile generated by the XS handling part doesn't > escape spaces in the typemap path (and you can't pre-escape them because the > Makefile builder checks that the typemap exists on disk first). We'd get a > lot further if ExtUtils::MakeMaker fixed that (maybe Module::Build won't have > the problem anyhow). > > My main issue is that slatec doesn't work for me because the slatec code gets > compiled using gfortran in 32-bit mode but my perl and C compiler are in > 64-bit mode so it doesn't link. I could hack the Makefile.PL to force -m64 > but I'm not sure how to convince ExtUtils::F77 to do that itself > automatically (ExtUtils::F77 could realise that it's running in a 64-bit perl > with a GNU compiler so add the -m64 to CFLAGS itself). This doesn't affect > the testing much because all the slatec-based tests are skipped if Slatec > won't load and don't distinguish between "failure to find it" and "failure to > load it". > > I'm using Snow Leopard with 64-bit perl 5.10.1. > > Tim > > On Sun, Aug 15, 2010 at 7:56 AM, Daniel Carrera <[email protected]> wrote: > Yes. We *really* need OS X testers. We don't even have proper OS X > instructions. Currently all we have for OS X users is a suggestion to > use the SciKarl package or to try "cpan PDL" and cross your fingers. > It would be great if someone wrote something more detailed, like the > instructions I've written for Ubuntu and Fedora. > > http://pdl.perl.org/2.4.7RC/?page=install > > > > --- ../PDL-2.4.6_992-UsfSte/Basic/Core/Dev.pm 2010-05-08 16:43:08.000000000 > -1000 > +++ Basic/Core/Dev.pm 2010-08-15 15:19:56.000000000 -1000 > @@ -43,7 +43,7 @@ > # Return library locations > > > -sub PDL_INCLUDE { '-I'.whereami_any().'/Core' }; > +sub PDL_INCLUDE { '-I"'.whereami_any().'/Core"' }; > sub PDL_TYPEMAP { whereami_any().'/Core/typemap.pdl' }; > # sub PDL_INST_INCLUDE { '-I'.whereami_any().'/Core' }; > # sub PDL_INST_TYPEMAP { whereami_any().'/Core/typemap.pdl' }; > @@ -396,6 +396,10 @@ > my $core = "$w/Basic/Core"; > my $gen = "$w/Basic/Gen"; > > + # Escape any spaces in the file name > + $gen =~ s/ /\\ /g; > + $core =~ s/ /\\ /g; > + > ## I diked out a "$gen/pm_to_blib" dependency (between $core/badsupport.p > and > # $core/Types.pm below), because it appears to be causing excessive > recompiles. > # I don't think that the .pm files themselves should depend on > Gen/pm_to_blib, > @@ -406,7 +410,7 @@ > qq| > > $pref.pm: $src $core/badsupport.p $core/Types.pm > - \$(PERL) -I$w/blib/lib -I$w/blib/arch \"-MPDL::PP qw/$mod $mod > $pref/\" $src > + \$(PERL) -I\"$w/blib/lib\" -I\"$w/blib/arch\" \"-MPDL::PP qw/$mod > $mod $pref/\" $src > > $pref.xs: $pref.pm > \$(TOUCH) \$@ > > > _______________________________________________ > PDL-porters mailing list > [email protected] > http://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters -- Christian Soeller PhD Dept. of Physiology +64 9 3737599 x82770 University of Auckland Auckland, New Zealand fax +64 9 3737499
_______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
