#
# 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 );
+croak 'Windows support is currently broken. If you are interested in helping please contact us at sdl-devel\@perl.org.' if ($^O =~ /MSWin*|cygwin/ );
+my $sdl_compile_flags = SDL::Utility->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
SDL => {
file => {
from => 'src/SDL.xs',
- to => 'src/SDL_perl.xs',
+ to => './SDL_perl.xs',
},
libraries => [qw( SDL SDL_image SDL_mixer SDL_net SDL_ttf SDL_gfx
png jpeg smpeg )],
OpenGL => {
file => {
from => 'src/OpenGL.xs',
- to => 'src/SDL/OpenGL.xs',
+ to => 'SDL/OpenGL.xs',
},
libraries => [qw( SDL GL GLU )],
},
SFont => {
file => {
from => 'src/SFont.xs',
- to => 'src/SDL/SFont.xs',
+ to => 'SDL/SFont.xs',
},
libraries => [qw( SDL SDL_image )],
},
# mangle the compilable files into a format Module::Build can understand
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',
{
'Test::Simple' => '0.47',
'Module::Build' => '0.22',
+ 'YAML' => '0.68'
},
build_recommends =>
{
'Pod::ToDemo' => '0.20',
},
+ c_source => 'src',
xs_files => \%xs,
+ meta_add =>
+ {
+ no_index => { file => [ <make/lib/SDL/*.pm>, <make/lib/SDL/Build/*.pm> ] },
+ },
dist_author => 'David J. Goehrig <DGOEHRIG@cpan.org>',
);
$sdl_compile_flags,
$sdl_link_flags,
);
-
# now we're ready to go!
$build->create_build_script();