use ExtUtils::MakeMaker qw(prompt WriteMakefile); require 5.6.0; unless (@ARGV) { warn < PATHS: CHECK AND ADJUST <===== my (@INC,@LIBPATH,@LIBS); my $AUTOCONFIG = 0; # global set by try_to_autoconfigure() below try_to_autoconfigure(\$options,\$lib_gd_path,\@INC,\@LIBPATH,\@LIBS); @INC = qw(-I/usr/include -I/usr/include/gd) unless @INC; @LIBPATH = qw(-L/usr/lib/X11 -L/usr/X11R6/lib -L/usr/X11/lib -L/usr/lib) unless @LIBPATH; @LIBS = qw(-lgd -lpng -lz) unless @LIBS; # support for AMD64 libraries if (-d '/usr/lib64') { my @libs64 = map {my $a = $_; $a=~ s/lib$/lib64/; $a} @LIBPATH; @LIBPATH = (@LIBPATH,@libs64); } ############################################################################################# # Build options passed in to script to support reproducible builds via Makefiles ############################################################################################# use Getopt::Long; my $result = GetOptions("options=s" => \$options, "lib_gd_path=s" => \$lib_gd_path, "lib_ft_path=s" => \$lib_ft_path, "lib_png_path=s" => \$lib_png_path, "lib_jpeg_path=s" => \$lib_jpeg_path, "lib_xpm_path=s" => \$lib_xpm_path, "lib_zlib_path=s" => \$lib_zlib_path, ); unless ($result) { print STDERR < 'GD', 'VERSION_FROM' => 'GD.pm', 'PREREQ_PM' => { 'Math::Trig' => 0, }, 'dist' => {'COMPRESS'=>'gzip -9f', 'SUFFIX' => 'gz', 'ZIP'=>'/usr/bin/zip','ZIPFLAGS'=>'-rl'}, 'LIBS' => [join(' ',$ENV{'GD_LIBS'},@LIBPATH,@LIBS)], 'INC' => join(' ',$ENV{'GD_INC'},@INC), 'AUTHOR' => 'Lincoln Stein (lstein@cshl.org)', 'ABSTRACT' => 'Interface to Gd Graphics Library', $CAPI ? ('CAPI' => 'TRUE') : (), 'DEFINE' => $DEFINES, ); sub try_to_autoconfigure { my ($options,$lib_gd_path,$INC,$LIBPATH,$LIBS) = @_; my $config = `gdlib-config --all`; return unless $config; $AUTOCONFIG++; my ($version) = $config =~ /^GD library\s+(\S+)/m; warn "Configuring for libgd version $version.\n"; my ($cflags) = $config =~ /^cflags:\s+(.+)/m; my ($ldflags) = $config =~ /^ldflags:\s+(.+)/m; my ($libs) = $config =~ /^libs:\s+(.+)/m; my ($libdir) = $config =~ /^libdir:\s+(.+)/m; my ($features) = $config =~ /^features:\s+(.+)/m; @$INC = map {s/^-I// && "-I$_"} split /\s+/,$cflags; @$LIBPATH = map {s/^-L// && "-L$_"} split /\s+/,$ldflags; @$LIBS = split /\s+/,$libs; push @$LIBS,"-lgd"; push @$LIBPATH,"-L$libdir"; ($$lib_gd_path = $libdir) =~ s!/[^/]+$!!; $$options = $features; } sub MY::postamble { my $postamble = <<'END'; html: GD.pm pod2html --outfile=GD.html GD.pm END $postamble; }