What perl version are you compiling SDLPerl in? Does it have threads enabled?

Kartik Thakore

On 2010-02-21, at 9:09 PM, Mike Stok <m...@stok.co.uk> wrote:

I have downloaded the tarball from github - http://github.com/kthakore/SDL_perl/tree/redesign -> download.

This is still using the MacPorts perl & local::lib, if that matters.

Output from the commands (including a Build installdeps) attached.

<typescript>

Mike

On Feb 21, 2010, at 8:43 PM, Kartik Thakore wrote:

Hey ruoso!

Guess what our magic typemap just came back to bite us in the ass. :) On the mac we don't have my_perl defined for us. Maybe if I put it in the header of each .XS file saying with a #ifdef MacOSX ?

Any way let me know what you think. This is the last step stopping us from complete build on Mac.

Also Mike can you update your SDL_perl git repo.

And post your output for
 perl Build realclean
 perl Build.PL
 perl Build

regards,

Kartik

On Sun, Feb 21, 2010 at 8:32 PM, Mike Stok <m...@stok.co.uk> wrote:
Hi Kartik,

The Channels.c file is attached. The chunk of code around line 499 is this:

#line 491 "lib/SDL/Mixer/Channels.c"
        Mix_Chunk *     RETVAL;
#line 174 "lib/SDL/Mixer/Channels.xs"
                RETVAL = Mix_GetChunk(chan);
#line 495 "lib/SDL/Mixer/Channels.c"
        ST(0) = sv_newmortal();
        if (RETVAL) {
          void** pointers = malloc(2 * sizeof(void*));
          pointers[0] = (void*)RETVAL;
          pointers[1] = (void*)my_perl;
          sv_setref_pv( ST(0), CLASS, (void*)pointers );
        } else {
          XSRETURN_UNDEF;
        }

    }
    XSRETURN(1);
}


Mike



On Feb 21, 2010, at 8:28 PM, Kartik Thakore wrote:

Ok I updated everything as you said.

Can you post your lib/SDL/Mixer/Channels.c ? I don't see where the my_perl is coming from?

On Sun, Feb 21, 2010 at 8:07 PM, Mike Stok <m...@stok.co.uk> wrote:

On Feb 21, 2010, at 7:22 PM, Kartik Thakore wrote:

Mike,

Can you remove --libdir=/usr/lib64 103 in inc/My/Builder/Unix.pm. And try this again?

from line

I unpacked a clean version from git and removed the --libdir=/usr/ lib64 from the command:

    $cmd = 'CC="gcc ${BUILD64}" USE_ARCH=64' .
" ./configure --prefix=$prefixdir --enable-static=no -- enable-shared=yes" .
           ' --disable-mmx --libdir=/usr/lib64' .
           " CFLAGS=-I$prefixdir/include LDFLAGS=-L$prefixdir/lib";

perl Build.PL
perl Build
perl Build install

worked OK. (I did have to CPAN install File::Fetch, Archive::Extract, and DIgest::SHA1)

For the http://github.com/kthakore/SDL_perl/tree/redesign archive I just downloaded inc/My/Builder/Darwin.pm had a missing = at line 42 - the install_base assignment:

sub special_build_settings
{
        my $self = shift;
        $self->{c_source} = ['launcher.m'];
        $self->{c_sources} = 'MacOSX';
        $self->{install_base} "SDLPerl.app/Contents/Resources";    
}

I had to add a "my"at line 50:

        my $cflags = `sdl-config --cflags`;

and line 54

        my $libs = `sdl-config  --libs`;

That got the perl Build.PL to work, but then the perl Build step gave up at:

/usr/bin/gcc-4.2 -I/opt/local/lib/perl5/5.8.9/darwin-2level/CORE - DXS_VERSION="2.3_7" -DVERSION="2.3_7" -I/Users/mike/perl5/lib/ perl5/auto/share/dist/Alien-SDL/v0.8.1_6aca4eea/include/SDL - D_GNU_SOURCE=1 -D_THREAD_SAFE -I/Users/mike/perl5/lib/perl5/auto/ share/dist/Alien-SDL/v0.8.1_6aca4eea/include -I/Users/mike/perl5/ lib/perl5/auto/share/dist/Alien-SDL/v0.8.1_6aca4eea/include/smpeg - I/usr/X11R6/include -I/usr/X11R6/include/GL -I/usr/X11R6/include/ gl -I/usr/include -I/usr/local/include -DHAVE_SDL -DHAVE_SDL_MIXER -fPIC -c -O2 -arch x86_64 -fno-common -DPERL_DARWIN -I/opt/local/ include -no-cpp-precomp -fno-strict-aliasing -pipe -I/usr/local/ include -I/opt/local/include -O3 -o lib/SDL/Mixer/Channels.o lib/ SDL/Mixer/Channels.c lib/SDL/Mixer/Channels.c: In function ‘XS_SDL__Mixer__Channels_g et_chunk’: lib/SDL/Mixer/Channels.c:499: error: ‘my_perl’ undeclared (first use in this function) lib/SDL/Mixer/Channels.c:499: error: (Each undeclared identifier is reported only once lib/SDL/Mixer/Channels.c:499: error: for each function it appears in.) error building lib/SDL/Mixer/Channels.o from 'lib/SDL/Mixer/ Channels.c' at /Users/mike/perl5/lib/perl5/ExtUtils/CBuilder/ Base.pm line 114.

Mike



On Sun, Feb 21, 2010 at 6:40 PM, Kartik Thakore <thakore.kar...@gmail.com > wrote:
Hey kmx,

There an ENV var we can for forcing the prefix on the configure right?



Kartik Thakore

On 2010-02-21, at 5:29 PM, Mike Stok <m...@stok.co.uk> wrote:


On Feb 21, 2010, at 4:13 PM, Kartik Thakore wrote:

Hi mike I think we have the fix for Alien done. Can you try the github?

I tried, using MacPorts Perl and local::lib (because I don't want to install stuff in "system places") and the perl Build step failed:

creating libSDL_gfx.la
(cd .libs && rm -f libSDL_gfx.la && ln -s ../libSDL_gfx.la libSDL_gfx.la)
test -z "/usr/lib64" || ./install-sh -c -d "/usr/lib64"
mkdir: /usr/lib64: Permission denied
make[1]: *** [install-libLTLIBRARIES] Error 1
make: *** [install-am] Error 2
###ERROR### [512] during make ... at inc/My/Builder/Unix.pm line 84.

I'm happy to try using sudo, but I don't like polluting my system. Let me know what you want me to do.

Looks like you have got further,

Cheers,

Mike


On Sun, Feb 21, 2010 at 2:51 PM, Mike Stok <m...@stok.co.uk> wrote:

On Feb 21, 2010, at 2:43 PM, Kartik Thakore wrote:

hey mike we are closer to a 64 bit mac fix.

Can you give us the output for

perl -e 'use Config; print $Config{archname}'

on you mac?

For MacPorts perl (and the perl I built myself):

ratdog:~ mike$ perl -le 'use Config; print $Config{archname}'
darwin-2level

For the Apple supplied perl:

ratdog:~ mike$ /usr/bin/perl -le 'use Config; print $Config {archname}'
darwin-thread-multi-2level

This is on a Core 2 Duo MacBook Pro running OS X 10.6.2 build 10C540 if that matters.

Mike




On Sun, Feb 21, 2010 at 12:10 AM, Kartik Thakore <thakore.kar...@gmail.com > wrote:
Thanks for trying.


On Sat, Feb 20, 2010 at 11:52 PM, Mike Stok <m...@stok.co.uk> wrote:
Hi Kartik,

On Feb 20, 2010, at 9:30 PM, Mike Stok wrote:

Maybe  more later...

I think I might succeed by setting the build architecture in my macports to i386 in /opt/local/etc/macports/macports.conf, but that means I'll have to rebuild a few things (e.g. macports perl). I'll try in the morning and let you know.

I saw your email to teh SDL developers, so I'll check for replies in the morning too.

Cheers,

Mike

--

Mike Stok <m...@stok.co.uk>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.








--

Mike Stok <m...@stok.co.uk>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.






--

Mike Stok <m...@stok.co.uk>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.







--

Mike Stok <m...@stok.co.uk>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.






--

Mike Stok <m...@stok.co.uk>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.







--

Mike Stok <m...@stok.co.uk>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.




Reply via email to