Alien-SDL
view release on metacpan or search on metacpan
inc/My/Builder/Unix.pm view on Meta::CPAN
chdir $srcdir;
if($pack->{pack} eq 'SDL' && $^O eq 'cygwin') {
$self->do_system('cp ../../patches/SDL-1.2.14-configure configure');
$self->do_system('cp ../../patches/SDL-1.2.14-ltmain_sh build-scripts/ltmain.sh');
}
# setting environments PATH
my $extra_PATH = "";
if ($^O eq 'solaris') {
# otherwise we get "false cru build/libSDLmain.a build/SDL_dummy_main.o"
# see http://fixunix.com/ntp/245613-false-cru-libs-libopts-libopts_la-libopts-o.html#post661558
for (qw[/usr/ccs/bin /usr/xpg4/bin /usr/sfw/bin /usr/xpg6/bin /usr/gnu/bin /opt/gnu/bin /usr/bin]) {
$extra_PATH .= ":$_" if -d $_;
}
}
$ENV{PATH} = "$prefixdir/bin:$ENV{PATH}$extra_PATH";
# do './configure ...'
my $run_configure = 'y';
$run_configure = $self->prompt("Run ./configure for '$pack->{pack}' again?", "y") if (-f "config.status");
if (lc($run_configure) eq 'y') {
my $cmd = $self->_get_configure_cmd($pack->{pack}, $prefixdir);
print "Configuring package '$pack->{pack}'...\n";
print "(cmd: $cmd)\n";
unless($self->do_system($cmd)) {
if(-f "config.log" && open(CONFIGLOG, "<config.log")) {
print "config.log:\n";
print while <CONFIGLOG>;
close(CONFIGLOG);
}
die "###ERROR### [$?] during ./configure for package '$pack->{pack}'...";
}
}
$self->do_system('cp ../SDL-1.2/libtool libtool') if $pack->{pack} eq 'SDL_Pango';
# do 'make install'
my @cmd = ($self->_get_make, 'install');
print "Running make install $pack->{pack}...\n";
print "(cmd: ".join(' ',@cmd).")\n";
$self->do_system(@cmd) or die "###ERROR### [$?] during make ... ";
chdir $self->base_dir();
}
}
return 1;
}
### internal helper functions
sub _get_configure_cmd {
my ($self, $pack, $prefixdir) = @_;
my $extra = '';
my $escaped_prefixdir = $self->escape_path( $prefixdir );
my $extra_cflags = "-I$escaped_prefixdir/include " . $self->get_additional_cflags();
my $extra_ldflags = "-L$escaped_prefixdir/lib " . $self->get_additional_libs();
my $extra_PATH = "";
my $uname = $Config{archname};
my $stdout = '';
my $stderr = '';
my $cmd;
($stdout, $stderr) = Capture::Tiny::capture { print `uname -a`; };
$uname .= " $stdout" if $stdout;
# NOTE: all ugly IFs concerning ./configure params have to go here
if($pack eq 'SDL_gfx' && $uname =~ /(powerpc|ppc|64|2level|alpha|armv[56]|sparc)/i) {
$extra .= ' --disable-mmx';
}
if($pack eq 'SDL' && $uname =~ /(powerpc|ppc)/) {
$extra .= ' --disable-video-ps3';
}
if($pack eq 'SDL' && $^O eq 'darwin' && !check_header($self->get_additional_cflags, 'X11/Xlib.h')) {
$extra .= ' --without-x';
}
if($pack eq 'SDL' && !check_header($self->get_additional_cflags, 'X11/extensions/XShm.h')) {
$extra .= ' --disable-video-x11-xv';
$extra_cflags .= ' -DNO_SHARED_MEMORY';
}
if($pack =~ /^SDL_(image|mixer|ttf|gfx|Pango)$/ && $^O eq 'darwin') {
$extra .= ' --disable-sdltest';
}
if($pack eq 'SDL' && $^O eq 'solaris' && !check_header($extra_cflags, 'sys/audioio.h')) {
$extra .= ' --disable-audio';
}
if ($pack eq 'SDL' && $^O eq 'openbsd') {
my $osver = `uname -r 2>/dev/null`;
if (!$self->notes('perl_libs')->{pthread} || !$osver || $osver >= 5.0) {
$extra .= ' --disable-pthreads';
}
}
if($pack =~ /^SDL_/) {
$extra .= " --with-sdl-prefix=$escaped_prefixdir";
}
if($^O eq 'cygwin') {
#$extra_cflags .= " -I/lib/gcc/i686-pc-cygwin/3.4.4/include";
#$extra_ldflags .= " -L/lib/gcc/i686-pc-cygwin/3.4.4";
# $extra_cflags .= " -I/usr/include";
# $extra_ldflags .= " -L/lib";
# $extra_cflags .= " -I/lib/gcc/i686-pc-cygwin/4.3.4/include";
# $extra_ldflags .= " -L/lib/gcc/i686-pc-cygwin/4.3.4";
if($pack eq 'SDL') {
# kmx experienced troubles while cygwin build when nasm was present in PATH
# $extra .= " --disable-nasm --enable-pthreads --enable-pthread-sem --enable-sdl-dlopen --disable-arts"
# . " --disable-esd --disable-nas --enable-oss --disable-pulseaudio --disable-dga --disable-video-aalib"
# . " --disable-video-caca --disable-video-dga --enable-video-dummy --disable-video-ggi --enable-video-opengl"
# . " --enable-video-x11 --disable-video-x11-dgamouse --disable-video-x11-vm --enable-video-x11-xinerama"
# . " --disable-video-x11-xme --enable-video-x11-xrandr --disable-video-x11-xv --disable-arts-shared"
# . " --disable-esd-shared --disable-pulseaudio-shared --enable-x11-shared";
}
}
if($pack eq 'jpeg') {
( run in 0.615 second using v1.01-cache-2.11-cpan-9581c071862 )