X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Build.PL;h=f297f5a12393e551533f5ba878fa9e193345bbec;hb=95f5be308db86ed665a21a6d0c99aa5acb0b3409;hp=4a5892391efb4f6dc8d97e9444cee6d7635b2018;hpb=2c74806244ad190f7dfb8bf99ce1613fd3ecfc04;p=sdlgit%2FSDL_perl.git diff --git a/Build.PL b/Build.PL index 4a58923..f297f5a 100644 --- a/Build.PL +++ b/Build.PL @@ -1,54 +1,30 @@ -#!/usr/bin/env perl +#! perl -w # -# Build.PL -# -# Copyright (C) 2005 David J. Goehrig -# -# ------------------------------------------------------------------------------ -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# -# ------------------------------------------------------------------------------ -# -# Please feel free to send questions, suggestions or improvements to: -# -# David J. Goehrig -# dgoehrig@cpan.org -# - +# 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; - -my $sdl_compile_flags = `sdl-config --cflags`; -my $sdl_link_flags = `sdl-config --libs`; - -if ($? >> 8) -{ - croak "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 ); - +use YAML::Node; + +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 @@ -61,24 +37,73 @@ my %subsystems = SDL => { file => { from => 'src/SDL.xs', - to => 'src/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 SDL_image SDL_mixer SDL_sound SDL_net SDL_ttf - SDL_gfx SDL_svg png jpeg smpeg )], + 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 )], + }, + 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 => 'src/SDL/OpenGL.xs', + to => 'lib/SDL/OpenGL.xs', }, libraries => [qw( SDL GL GLU )], }, SFont => { file => { from => 'src/SFont.xs', - to => 'src/SDL/SFont.xs', + to => 'lib/SDL/SFont.xs', }, - libraries => [qw( SDL SDL_image )], + libraries => [qw( SDL SDL_ttf )], }, ); @@ -95,10 +120,6 @@ my %libraries = ( define => 'HAVE_SDL_MIXER', header => 'SDL_mixer.h' }, - SDL_sound => { - define => 'HAVE_SDL_SOUND', - header => 'SDL_sound.h' - }, SDL_net => { define => 'HAVE_SDL_NET', header => 'SDL_net.h' @@ -111,10 +132,6 @@ my %libraries = ( define => 'HAVE_SDL_GFX', header => 'SDL_gfxPrimitives.h' }, - SDL_svg => { - define => 'HAVE_SDL_SVG', - header => 'SDL_svg.h' - }, png => { define => 'HAVE_PNG', header => 'png.h', @@ -141,8 +158,6 @@ my %libraries = ( # see build/lib/SDL/Build/*pm my $arch = SDL::Build->get_arch( $^O ); -print "[Build.PL] arch $arch\n"; - # see which subsystems can be built -- do we have headers for them? my $build_systems = $arch->find_subsystems( \%subsystems, \%libraries ); @@ -150,30 +165,40 @@ my $build_systems = $arch->find_subsystems( \%subsystems, \%libraries ); $arch->write_sdl_config( $build_systems ); # and fetch all of the information needed to compile -my $defines = $arch->build_defines( \%libraries, $build_systems ); -my $includes = $arch->build_includes( \%libraries, $build_systems ); -my $links = $arch->build_links( \%libraries, $build_systems ); +my $defines = $arch->build_defines( \%libraries, $build_systems ); +my $includes = $arch->build_includes( \%libraries, $build_systems ); +my $links = $arch->build_links( \%libraries, $build_systems ); # mangle the compilable files into a format Module::Build can understand my %xs = map { $subsystems{$_}{file}{from} => $subsystems{$_}{file}{to} } -keys %subsystems; - + 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', + 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') @@ -183,6 +208,8 @@ if($arch eq 'Darwin') $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, $build_systems, @@ -192,6 +219,5 @@ $build->set_flags( $sdl_compile_flags, $sdl_link_flags, ); - # now we're ready to go! $build->create_build_script();