Image-Magick
view release on metacpan or search on metacpan
Makefile.PL.in view on Meta::CPAN
#try to get configuration info via magick or identify utilities
my $devnull = devnull();
my $conf = `magick identify -list Configure 2>$devnull` || `identify -list Configure 2>$devnull`;
my @delegates = ();
foreach my $line (split '\n', $conf) {
next unless $line =~ /^DELEGATES\s+/;
(undef, @delegates) = split /\s+/, $line;
last;
};
return @delegates;
}
# Compute test specification
my $delegate_tests='t/*.t';
my @tested_delegates = qw/bzlib djvu fftw fontconfig freetype jpeg jng openjp2 lcms png rsvg tiff x11 xml wmf zlib/;
my @supported_delegates = AutodetectDelegates();
# find the intersection of tested and supported delegates
my %seen_delegates = ();
$seen_delegates{$_}++ for @supported_delegates;
foreach my $delegate (@tested_delegates) {
if ( $seen_delegates{$delegate} ) {
if ( -d "t/$delegate" ) {
if ( defined($ENV{'DISPLAY'}) && ($^O ne 'MSWin32') ) {
if ( defined $ENV{'DISPLAY'} ) {
$delegate_tests .= " t/$delegate/*.t";
}
next;
}
$delegate_tests .= " t/$delegate/*.t";
}
}
}
# defaults for LIBS & INC & CCFLAGS params that we later pass to Writemakefile
my $INC_magick = '-I../ -I@top_srcdir@ @CPPFLAGS@ -I"' . $Config{'usrinc'} . '/ImageMagick"';
my $LIBS_magick = '-L../MagickCore/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ @MATH_LIBS@ -L' . $Config{'archlib'} . '/CORE';
my $CCFLAGS_magick = "$Config{'ccflags'} @CFLAGS@";
my $LDFLAGS_magick = "-L../MagickCore/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ $Config{'ldflags'} @LDFLAGS@";
my $LDDLFLAGS_magick = "-L../MagickCore/.libs -lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@ $Config{'lddlflags'} @LDFLAGS@";
if (($^O eq 'MSWin32') && ($Config{cc} =~ /gcc/)) {
my($Ipaths, $Lpaths) = AutodetectWin32gcc();
#
# Setup for strawberry perl.
#
$INC_magick = "$Ipaths @CPPFLAGS@";
$LIBS_magick = "-lMagickCore-@MAGICK_MAJOR_VERSION@.@MAGICK_ABI_SUFFIX@";
$CCFLAGS_magick = "$Config{'ccflags'}";
$LDFLAGS_magick = "$Config{'ldflags'} $Lpaths ";
$LDDLFLAGS_magick = "$Config{'lddlflags'} $Lpaths ";
}
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile
(
# Module description
'ABSTRACT' => 'ImageMagick PERL Extension',
# Perl module name is Image::Magick
'NAME' => 'Image::Magick',
# Module author
'AUTHOR' => 'ImageMagick Studio LLC',
# Module version
'VERSION' => '@PACKAGE_BASE_VERSION@',
# Prerequisite version
'PREREQ_PM' => {'parent' => '0'},
# Preprocessor defines
'DEFINE' => '@LFS_CPPFLAGS@ @DEFS@', # e.g., '-DHAVE_SOMETHING'
# Header search specification and preprocessor flags
'INC' => $INC_magick,
# C compiler
#'CC' => '@CC@',
# C pre-processor flags (e.g. -I & -D options)
# 'CPPFLAGS' => "$Config{'cppflags'} @CPPFLAGS@",
# C compiler flags (e.g. -O -g)
'CCFLAGS' => $CCFLAGS_magick,
# Linker
#'LD' => $Config{'ld'} == $Config{'cc'} ? '@CC@' : $Config{'ld'},
# Linker flags for building an executable
'LDFLAGS' => $LDFLAGS_magick,
# Linker flags for building a dynamically loadable module
'LDDLFLAGS' => $LDDLFLAGS_magick,
# Install PerlMagick binary into ImageMagick bin directory
'INSTALLBIN' => '@BIN_DIR@',
# Library specification
'LIBS' => [ $LIBS_magick ],
# Perl binary name (if a Perl binary is built)
'MAP_TARGET' => 'PerlMagick',
# Let CFLAGS drive optimization flags by setting OPTIMIZE to empty
# 'OPTIMIZE' => '',
# Use same compiler as ImageMagick
'PERLMAINCC' => '@PERLMAINCC@ @OPENMP_CFLAGS@',
'AR' => '@AR@',
'LD' => '@PERLMAINCC@',
# Set Perl installation prefix to ImageMagick installation prefix
# 'PREFIX' => '@prefix@',
# Include delegate directories in tests
test => { TESTS => $delegate_tests},
($Config{'archname'} =~ /-object$/i ? ('CAPI' => 'TRUE') : ()),
# sane version
( run in 3.333 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )