X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Build.PL;h=96d621772055e2cc2ff75dcdf1cffebd56c7cf7e;hb=HEAD;hp=9bae6268601406c3d9f49c8c8507b6fdeb756f0b;hpb=e00a4871f08a9980f73513369edb4e66f0956d8d;p=sdlgit%2FSDL_perl.git diff --git a/Build.PL b/Build.PL index 9bae626..96d6217 100644 --- a/Build.PL +++ b/Build.PL @@ -2,27 +2,29 @@ # # Copyright (C) 2003 chromatic # Copyright (C) 2004 David J. Goehrig -# +# Copyright (C) 2009 Kartik Thakore use strict; - +use warnings; +use Carp; use lib 'make/lib'; +use Data::Dumper; use SDL::Build; +use SDL::Utility; use YAML; +use YAML::Node; -my $sdl_compile_flags = `sdl-config --cflags`; -my $sdl_link_flags = `sdl-config --libs`; - -if ($? >> 8) -{ - die "SDL doesn't appear to be installed.\n" . - "Please check that sdl-config is in your path and try again.\n"; -} - -chomp( $sdl_compile_flags ); -chomp( $sdl_link_flags ); +print STDERR <sdl_c_flags(); +my $sdl_link_flags = SDL::Utility->sdl_libs(); # subsystem to build # file # location of source file => location of build file to get name right @@ -35,24 +37,89 @@ my %subsystems = SDL => { file => { from => 'src/SDL.xs', - to => 'SDL/SDL_perl.xs', + to => 'lib/SDL_perl.xs', }, libraries => [qw( SDL SDL_image SDL_mixer SDL_net SDL_ttf SDL_gfx png jpeg smpeg )], }, + Video => { + file => { + from => 'src/Core/Video.xs', + to => 'lib/SDL/Video.xs', + }, + libraries => [qw( SDL )], + }, + Rect => { + file => { + from => 'src/Core/objects/Rect.xs', + to => 'lib/SDL/Rect.xs', + }, + libraries => [qw( SDL )], + }, + Color => { + file => { + from => 'src/Core/objects/Color.xs', + to => 'lib/SDL/Color.xs', + }, + libraries => [qw( SDL )], + }, + Surface => { + file => { + from => 'src/Core/objects/Surface.xs', + to => 'lib/SDL/Surface.xs', + }, + libraries => [qw( SDL )], + }, + Overlay => { + file => { + from => 'src/Core/objects/Overlay.xs', + to => 'lib/SDL/Overlay.xs', + }, + libraries => [qw( SDL )], + }, + PixelFormat => { + file => { + from => 'src/Core/objects/PixelFormat.xs', + to => 'lib/SDL/PixelFormat.xs', + }, + libraries => [qw( SDL )], + }, + Palette => { + file => { + from => 'src/Core/objects/Palette.xs', + to => 'lib/SDL/Palette.xs', + }, + libraries => [qw( SDL )], + }, + + VideoInfo => { + file => { + from => 'src/Core/objects/VideoInfo.xs', + to => 'lib/SDL/VideoInfo.xs', + }, + libraries => [qw( SDL )], + }, + + TTF_Font => { + file => { + from => 'src/TTF/objects/TTF_Font.xs', + to => 'lib/SDL/TTF_Font.xs', + }, + libraries => [qw( SDL SDL_ttf )], + }, OpenGL => { file => { from => 'src/OpenGL.xs', - to => 'SDL/OpenGL/OpenGL.xs', + to => 'lib/SDL/OpenGL.xs', }, libraries => [qw( SDL GL GLU )], }, SFont => { file => { from => 'src/SFont.xs', - to => 'SDL/SFont/SFont.xs', + to => 'lib/SDL/SFont.xs', }, - libraries => [qw( SDL SDL_image )], + libraries => [qw( SDL SDL_ttf )], }, ); @@ -122,23 +189,42 @@ my $links = $arch->build_links( \%libraries, $build_systems ); my %xs = map { $subsystems{$_}{file}{from} => $subsystems{$_}{file}{to} } keys %subsystems; my $build = SDL::Build->new( + module_name => 'SDL', dist_name => 'SDL_Perl', license => 'lgpl', dist_version_from => 'lib/SDL.pm', - build_requires => + configure_requires => + { + 'YAML' => '0.68', + 'ExtUtils::CBuilder' => '0.260301', + 'Alien::SDL' => '0.7.1', + }, + build_requires => { 'Test::Simple' => '0.47', - 'Module::Build' => '0.22', + }, build_recommends => { - 'Pod::ToDemo' => '0.20', + 'Pod::ToDemo' => '0.20' }, c_source => 'src', xs_files => \%xs, - dist_author => 'David J. Goehrig ', + meta_add => + { + no_index => { file => [ , , , , ] }, + }, + dist_author => 'David J. Goehrig , Kartik Thakore ', ); +if($arch eq 'Darwin') +{ + $build->{c_source} = $arch->build_c_source( \%libraries, $build_systems ); + $build->{c_sources} = $arch->build_c_sources( \%libraries, $build_systems ); + $build->{install_base} = $arch->build_install_base( \%libraries, $build_systems ); + +} + # and here's where the real (and ugly) magic works... see SDL::Build $build->set_flags( \%subsystems, @@ -149,6 +235,5 @@ $build->set_flags( $sdl_compile_flags, $sdl_link_flags, ); - # now we're ready to go! $build->create_build_script();