X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Build.PL;h=96d621772055e2cc2ff75dcdf1cffebd56c7cf7e;hb=128c8327685b245d2688aff94fae9b3fef280473;hp=b5ba3099dde56284222871f9d4a6f50237aa3dba;hpb=bfd90409c307d445ed6fec5cce6344b1e3d1be05;p=sdlgit%2FSDL_perl.git diff --git a/Build.PL b/Build.PL index b5ba309..96d6217 100644 --- a/Build.PL +++ b/Build.PL @@ -1,53 +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) -{ - 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 ); - +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 @@ -60,24 +37,89 @@ 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 )], + }, + 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_image SDL_mixer SDL_sound SDL_net SDL_ttf - SDL_gfx SDL_svg png jpeg smpeg )], + 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 )], }, ); @@ -94,10 +136,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' @@ -110,10 +148,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', @@ -140,8 +174,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 ); @@ -149,37 +181,50 @@ 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 $c_sources = $arch->build_c_sources( \%libraries, $build_systems ); -my $c_source = $arch->build_c_source( \%libraries, $build_systems ); -my $install_base = $arch->build_install_base( \%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; - 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 => $c_source, - c_sources => $c_sources, + c_source => 'src', xs_files => \%xs, - dist_author => 'David J. Goehrig ', - install_base => $install_base + 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, @@ -190,6 +235,5 @@ $build->set_flags( $sdl_compile_flags, $sdl_link_flags, ); - # now we're ready to go! $build->create_build_script();