On Thu, 2004-07-15 at 09:33, [EMAIL PROTECTED] wrote:

> 1. because the library is installed to a nonstandard place, none of
> the autodetect paths mentioned in SDL::Build::Linux->fetch_includes
> matched, so $links->{$subsystem}{libs} was undefined for several
> subsystems giving the previously reported problem "can't use undefined
> value as an ARRAY reference" in SDL::Build->set_flags.

Makes sense.  I've added guards against this now, so it should at least
warn.  If you run the installer with:

        perl Build.PL --with-sdl=/opt/libSDL-1.2.7

it should try a better autodetection scheme.  The heuristic isn't great,
but it's a passable idea.

> 2. on my system, `sdl-config --cflags` returns two arguments:
>   -I/opt/libSDL-1.2.7/include/SDL -D_REENTRANT
> Now, because the extra_compiler_flags are constructed as:
>   extra_compiler_flags => 
>   [
>     @{ $includes->{$subsystem} },
>     $sdl_compile,
>     @{ $defines->{$subsystem} },
>     ( defined $Config{usethreads} ? ('-DUSE_THREADS', '-fPIC') : '-fPIC' ),
>   ],
> .. Module::Build sees a list, so doesn't split the individual arguments,
> and eventually "-I/opt/libSDL-1.2.7/include/SDL -D_REENTRANT" gets passed
> to gcc as a single argument, and the wrong things happen.

I'd rather join them and let M::B figure out the right thing.  It's a
good catch though.

> That allowed me to complete the build, and testing then gave several failures;
> in synopsis:
> Failed Test    Stat Wstat Total Fail  Failed  List of Failed
> -------------------------------------------------------------------------------
> t/mixerpm.t     127 32512     3    2  66.67%  3
> t/toolfontpm.t    2   512     2    2 100.00%  1-2
> t/ttfontpm.t      1   256     2    1  50.00%  1
> 
> Now I don't have SDL_ttf installed, since I wasn't able to find a tarball
> for it: I guess that somewhere along the line the build process should be
> spotting that the library isn't installed, and skipping these tests.

The latest snapshots use SDL::Config to figure this out and should do
you much better there.

> Since I don't have a sound driver installed I didn't particularly expect
> success from the mixerpm tests, but the error messages suggest that the
> problem may have occurred earlier:

>   t/mixerpm..........ok 2/3Use of inherited AUTOLOAD for non-method 
> SDL::MixOpenAudio() is deprecated at blib/lib/SDL/Mixer.pm line 28, <DATA> line 266.
>   Can't locate auto/SDL/MixOpenAudi.al in @INC (@INC contains: blib/lib blib/arch 
> /src/package/lang/perl/SDL_Perl-2.1.0/blib/lib 
> /src/package/lang/perl/SDL_Perl-2.1.0/blib/arch 
> /src/package/lang/perl/SDL_Perl-2.1.0/make/lib /opt/perl-5.8.1/lib/5.8.1/i686-linux 
> /opt/perl-5.8.1/lib/5.8.1/i686-linux /opt/perl-5.8.1/lib/5.8.1 
> /opt/perl-5.8.1/lib/site_perl/5.8.1/i686-linux 
> /opt/perl-5.8.1/lib/site_perl/5.8.1/i686-linux /opt/perl-5.8.1/lib/site_perl/5.8.1 
> /opt/perl-5.8.1/lib/site_perl/5.8.1/i686-linux /opt/perl-5.8.1/lib/site_perl/5.8.1 
> /opt/perl-5.8.1/lib/site_perl /src/package/lang/perl/SDL_Perl-2.1.0 
> /opt/perl-5.8.1/lib/5.8.1/i686-linux /opt/perl-5.8.1/lib/5.8.1 
> /opt/perl-5.8.1/lib/site_perl/5.8.1/i686-linux /opt/perl-5.8.1/lib/site_perl/5.8.1 
> /opt/perl-5.8.1/lib/site_perl .) at blib/lib/SDL/Mixer.pm line 28

Yep, the error was in using SelfLoader, but that's a separate problem
altogether.

Please try the latest snapshot.  If it works for you, we'll merge these
changes in with some other pending fixes and release a nicer version of
2.1.0.

        http://wgz.org/chromatic/perl/sdl/SDL-Perl.tar.gz

-- c

Reply via email to