use ExtUtils::MakeMaker qw(prompt WriteMakefile);
warn "NOTICE: This module requires libgd 2.0.5 or higher.\n";
warn " it will NOT work with earlier versions.\n";
warn " For earlier versions of libgd, use GD version 1.41.\n";
# =====> PATHS: CHECK AND ADJUST <=====
my @INC = qw(-I/usr/local/include -I/usr/local/include/gd);
my @LIBPATH = qw(-L/usr/lib/X11 -L/usr/X11R6/lib -L/usr/X11/lib -L/usr/local/lib);
my @LIBS = qw(-lgd -lpng -lz);
if ($^O eq 'VMS'){
warn "This is a build on OpenVMS. In case of problems with the build\n";
warn "do not bother Lincoln Stein but get in touch with\n";
warn "Martin P.J. Zinser (zinser\@decus.de)\n\n";
if ($ENV{"LIB_ROOT"} eq "") {
warn "Define lib_root as a concealed logical pointing to the\n";
warn "Top directory where you have your libraries installed\n";
warn "E.g. define/job/trans=conc lib_root public$device:[public.util.libs.]\n";
warn "Also define the logical pubbin to point to the location\n";
warn "of the object libraries\n";
warn "Then re-invoke Makefile.PL\n";
warn "Exiting now...\n";
exit;
}
@INC = qw(-I/lib_root/gd -I/lib_root/libpng -I/lib_root/zlib);
@LIBPATH = qw(-Lpubbin);
@LIBS = qw(-llibgd.olb -llibpng.olb -llibz.olb);
}
# path to libgd
warn "\n";
my $PREFIX = lc prompt('Where is libgd installed?','/usr/lib');
unless ($PREFIX eq '/usr/lib') {
$PREFIX =~ s!/lib$!!;
unshift @INC,"-I$PREFIX/include";
unshift @LIBPATH,"-L$PREFIX/lib";
}
# FEATURE FLAGS
warn "\nPlease choose the features that match how libgd was built:\n";
my $JPEG = lc prompt('Build JPEG support?','y') eq 'y';
my $FT = lc prompt('Build FreeType support?','y') eq 'y';
my $XPM = $^O !~ /^freebsd|MSWin32$/ && lc prompt('Build XPM support?','y') eq 'y';
my $FCGI = 0; # set to 1 to build compatability with fastCGI
warn "\nIf you experience compile problems, please check the \@INC, \@LIBPATH and \@LIBS\n",
"arrays defined in Makefile.PL and manually adjust, if necessary.\n\n";
#### no user-serviceable parts below #####
push @LIBS,'-lfreetype' if $FT;
push @LIBS,'-ljpeg' if $JPEG;
push @LIBS, '-lm' unless $^O eq 'MSWin32';
push @INC, '-I/lib_root/libjpeg' if ($JPEG && $^O eq 'VMS');
push @INC, '-I/lib_root/ft2/include/freetype' if ($FT && $^O eq 'VMS');
push @INC, '-I/X11' if ($XPM && $^O eq 'VMS');
# FreeBSD 3.3 with libgd built from ports croaks if -lXpm is specified
if ($^O ne 'freebsd' && $^O ne 'MSWin32') {
push @LIBS,'-lX11','-lXpm' if $XPM;
}
my $CAPI = defined $ExtUtils::MakeMaker::CAPI_support ? 'TRUE' : 'FALSE';
my $DEFINES = '';
$DEFINES .= ' -DHAVE_JPEG' if $JPEG;
$DEFINES .= ' -DHAVE_FT' if $FT;
$DEFINES .= ' -DHAVE_XPM' if $XPM;
$DEFINES .= ' -DFCGI' if $FCGI;
WriteMakefile(
'NAME' => 'GD',
'VERSION_FROM' => 'GD.pm',
'PREREQ_PM' => {
Math::Trig => 1.00,
},
'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,
'DEFINE' => $DEFINES,
);
sub MY::postamble {
my $postamble = <<'END';
html: GD.pm
pod2html --outfile=GD.html GD.pm
END
$postamble;
}