#!/usr/bin/env perl -w use ExtUtils::MakeMaker; use strict; use Config; # # Configure SDL proper # my @defs; my $sdl_cflags; my $sdl_libs; my @dirs; my $inc_flags; my $sdl_image; my $sdl_mixer; my $sdl_ttf; my $sdl_net; my $png; my $jpeg; my $gl; my $glu; my $smpeg; my $gfx; my $sound; my @libDirs; my $glLib; my $gluLib; my $glVendorFlags; # # Windows configuration detection # ( Cywin for unsupported, currently only VC++ 6 ) # if ($^O eq "MSWin32") { warn "Warning: Env var INCLUDE should be set." unless exists $ENV{INCLUDE}; warn "Warning: Env var LIB should be set." unless exists $ENV{LIB}; my @incDirs = grep {$_} map {$_} split ';', $ENV{INCLUDE}; my @libDirs = grep {$_} map {$_} split ';', $ENV{LIB}; my $glVendor = $ENV{SDL_GL_VENDOR} || "MS"; my $mesagl = ( $glVendor eq "MESA" ? 1 : ( $glVendor eq "MS" ? 0 : die "Unrecognized SDL_GL_VENDOR: $glVendor\n" ) ); ($glLib,$gluLib,$glVendorFlags) = $mesagl ? ( '-lmesagl', '-lmesaglu -losmesa', '-DOPENGL_VENDOR_MESA -DCOMMON_OGL_SUPPORT') : ( '-lopengl32', '-lglu32', '-DOPENGL_VENDOR_MS -DCOMMON_OGL_SUPPORT'); @dirs=@incDirs; $sdl_libs = '-lsdl'; my @dllDirs = (@libDirs, split ';', '"' . $ENV{PATH} . '"'); for ( @dllDirs ) { $png = '-DHAVE_PNG' if -e "$_/libpng1.dll"; $jpeg = '-DHAVE_JPEG' if -e "$_/jpeg.dll"; $gl = '-DHAVE_GL $glVendorFlags' if -e "$_/gl.h"; $sound = '-DHAVE_SDL_SOUND' if -e "$_/SDL_sound.h"; } } else { die < 'SDL_perl', 'VERSION_FROM' => 'lib/SDL.pm', 'LIBS' => [ join( " ", "$sdl_libs", ($sdl_image) ? '-lSDL_image' : "", ($png) ? '-lpng' : "", ($jpeg) ? '-ljpeg' : "", ($sdl_mixer) ? '-lSDL_mixer' : "", ($sdl_net) ? '-lSDL_net' : "", ($sdl_ttf) ? '-lSDL_ttf' : "", ($gl) ? $glLib : "", ($glu) ? $gluLib : "", ($smpeg) ? '-lsmpeg' : "", ($gfx) ? '-lsdl_gfx' : "", ($sound) ? '-lsdl_sound' : "", ) ], 'DEFINE' => "$sdl_image $png $jpeg $sdl_mixer $sdl_net $sdl_ttf $gl $glu $smpeg $gfx $sound", 'INC' => "$inc_flags $sdl_cflags", 'OBJECT' => ($sdl_image ? 'SFont.o' : "" ) . " SDL_perl.o " . ($gl ? 'OpenGL.o' : "" ), ); # # Write Makefile # WriteMakefile(%options );