Home | History | Annotate | Download | only in PerlMagick
      1 # Copyright (C) 1999-2016 ImageMagick Studio LLC
      2 #
      3 # This program is covered by multiple licenses, which are described in
      4 # LICENSE.  You should have received a copy of LICENSE with this
      5 # package; otherwise see http://www.imagemagick.org/script/license.php.
      6 #
      7 #  Makefile for building PerlMagick under Windows
      8 #
      9 #
     10 #
     11 use ExtUtils::MakeMaker;
     12 use Config;
     13 # See lib/ExtUtils/MakeMaker.pm for details of how to influence
     14 # the contents of the Makefile that is written.
     15 #
     16 # NOTE: The current ActiveState binary distribution does not completely setup
     17 # the values in C:/Perl/lib/Config.pm. You must manually modify the values of
     18 # libpth to add the VisualC++ library path. It should look similar to one of
     19 # the following examples in order to work properly.
     20 #
     21 #  Random developer
     22 #   libpth='"C:\Perl\lib\CORE" "D:\DevStudio\VC98\lib"'
     23 #
     24 #  Visual Studio 6.0 default install:
     25 #   libpth='"C:\Program Files\Microsoft Visual Studio\VC98\lib" "C:\Perl\lib\CORE"'
     26 #
     27 #  Visual Studio 7.0 default install:
     28 #   libpth='"C:\Program Files\Microsoft Visual Studio .NET\vc7\lib" "C:\Perl\lib\CORE"'
     29 #
     30 #  Visual Studio 7.1 default install:
     31 #   libpth='"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib" "C:\Perl\lib\CORE"'
     32 #
     33 #  Visual Studio 9.0 default install (C:\Perl\lib\Config.pm):
     34 #  libpth='"C:\Program Files\Microsoft Visual Studio 9.0\VC\lib" "C:\Perl\lib\CORE"'
     35 #
     36 WriteMakefile(
     37     'ABSTRACT'  => 'ImageMagick PERL Extension',
     38     'AUTHOR'    => 'ImageMagick Studio',
     39     'NAME'      => 'Image::Magick',
     40     'VERSION_FROM' => 'Magick.pm', # finds $VERSION
     41     'LIBS'      => ['-L..\..\VisualMagick\lib -L..\..\VisualMagick\bin -lCORE_RL_MagickCore_.lib -lCORE_DB_MagickCore_.lib'],
     42     'DEFINE'    => '-D_VISUALC_ -D_WINDOWS',     # e.g., '-DHAVE_SOMETHING' 
     43     'INC'       => '-I.. -I..\xlib\include',
     44     'BINARY_LOCATION'  => 'x86/Image-Magick.tar.gz',
     45     'dist' => {ZIP => "zip.exe", ZIPFLAGS=>"-r"},
     46     'clean' => {FILES => "Image-Magick.ppd Image-Magick.tar.gz PerlMagick.zip " },
     47     ($Config{'archname'} =~ /-object$/i ? ('CAPI' => 'TRUE') : ()),
     48 );
     49 
     50 #
     51 # Add a targets for building ActiveState ppm distribution modules 
     52 # Dylan Beattie <dylan (a] zepler.org>, April 2002
     53 #
     54 # Requires tar, gzip, and zip.  This produces PerlMagick.zip
     55 # Get GNU tar and gzip from http://sourceware.cygnus.com/
     56 # Get Win32 command line PKZIP from http://www.pkware.com/ 
     57 # and rename PKZIP.EXE to ZIP.EXE and PKUNZIP.EXE to UNZIP.EXE
     58 # Make sure tar.exe, gzip.exe and zip.exe are in your system path
     59 #
     60 # 'nmake ppm' will include only the PerlMagick module
     61 # 'nmake ppm-full' also includes all ImageMagick DLLs and MGK files
     62 
     63 sub MY::postamble
     64 {
     65 	'
     66 Image-Magick.tar.gz: ppd pure_all #htmlifypods manifypods
     67 	if exist Image-Magick.tar.gz del Image-Magick.tar.gz
     68 	if exist Image-Magick.tar del Image-Magick.tar
     69 	$(TAR) $(TARFLAGS) Image-Magick.tar blib
     70 	$(COMPRESS) -q Image-Magick.tar
     71 
     72 release: Image-Magick.tar.gz
     73 
     74 ppm: ppd pure_all htmlifypods manifypods
     75 	if exist PerlMagick.zip del PerlMagick.zip
     76 	$(TAR) $(TARFLAGS) Image-Magick.tar blib
     77 	$(COMPRESS) -q Image-Magick.tar
     78 	if exist x86 del x86 /f /q
     79 	if exist x86 rd x86
     80 	md x86
     81 	copy Image-Magick.tar$(SUFFIX) x86
     82 	del Image-Magick.tar$(SUFFIX)
     83 	if exist ppm-readme.txt copy ppm-readme.txt readme
     84 	$(ZIP) $(ZIPFLAGS) PerlMagick.zip readme Image-Magick.ppd x86/Image-Magick.tar$(SUFFIX)
     85 	del x86\Image-Magick.tar$(SUFFIX)
     86 	rd x86
     87 
     88 ppm-full: ppd pure_all htmlifypods manifypods
     89 	if exist PerlMagick-full.zip del PerlMagick-full.zip
     90 	copy ..\..\VisualMagick\bin\*.dll blib\arch\auto\Image\Magick
     91 	copy ..\..\VisualMagick\bin\*.xml blib\arch\auto\Image\Magick
     92 	$(TAR) $(TARFLAGS) Image-Magick.tar blib
     93 	$(COMPRESS) -q Image-Magick.tar
     94 	if exist x86 del x86 /f /q
     95 	if exist x86 rd x86
     96 	md x86
     97 	copy Image-Magick.tar$(SUFFIX) x86
     98 	del Image-Magick.tar$(SUFFIX)
     99 	if exist ppm-readme.txt copy ppm-readme.txt readme
    100 	$(ZIP) $(ZIPFLAGS) PerlMagick-full.zip readme Image-Magick.ppd x86/Image-Magick.tar$(SUFFIX)
    101 	del x86\Image-Magick.tar$(SUFFIX)
    102 	rd x86
    103 	'
    104 }
    105 
    106 #
    107 # Modify the MakeMaker test fragment
    108 #
    109 sub MY::test
    110 {
    111    #
    112    # List any ImageMagick features derived from add-on libraries
    113    # or programs you would like to test.
    114    #
    115    # Valid choices are:
    116    #
    117    #  Feature   Formats Tested		Prerequisites
    118    #  =======   ======================	======================================
    119    #   bzlib    BZip compression	BZip library
    120    #   cgm	CGM format		'ralcgm' program
    121    #   hdf	HDF format		HDF library
    122    #   jbig	JBIG format		JBIG library
    123    #   jpeg 	JPEG format		JPEG library
    124    #   mpeg	MPEG format		'ffmpeg' program
    125    #   png	PNG format		PNG and Zlib libraries
    126    #   ps	Postscript format	'gs' program and/or DPS library
    127    #   rad	Radiance format		'ra_ppm' program
    128    #   tiff	TIFF format		TIFF library
    129    #   ttf	TrueType font format	FreeType library
    130    #   x	X11 support		X-windows libraries and server
    131    #   xfig	Xfig format		'transfig' program
    132    #   zlib	Zip compression		Zlib library
    133    #
    134    my @DELEGATES = qw/ bzlib cgm jbig jpeg mpeg png ps tiff wmf x xfig zlib/;
    135 
    136    package MY; # so that "SUPER" works right
    137    my $inherited = shift->SUPER::test(@_);
    138    my $delegate_tests=
    139     " t/setattribute.t" .
    140     " t/getattribute.t" .
    141     " t/filter.t" .
    142     " t/read.t" .
    143     " t/ping.t" .
    144     " t/montage.t" .
    145     " t/write.t" .
    146     " t/hpgl/read.t" .
    147     " t/jbig/read.t" .
    148     " t/jbig/write.t" .
    149     " t/jng/read.t" .
    150     " t/jng/write.t" .
    151     " t/openjp2/read.t" .
    152     " t/jpeg/read.t" .
    153     " t/jpeg/write.t" .
    154     " t/png/read.t" .
    155     " t/png/write.t" .
    156     " t/ps/read.t" .
    157     " t/ps/write.t" .
    158     " t/tiff/read.t" .
    159     " t/tiff/write.t" .
    160     " t/ttf/read.t" .
    161     " t/wmf/read.t" .
    162     " t/zlib/read.t" .
    163     " t/zlib/write.t";
    164    if ( defined $ENV{'DISPLAY'} ) {
    165     $delegate_tests .= " t/x11/write.t t/x11/read.t";
    166    }
    167    $inherited =~ s:^TEST_FILES =.*:TEST_FILES = ${delegate_tests}:m;
    168    $inherited;
    169 }
    170