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