Gfsm-XL

 view release on metacpan or  search on metacpan

Makefile.PL  view on Meta::CPAN

use ExtUtils::MakeMaker;

##----------------------------------------------------------------------
## Configuration
##----------------------------------------------------------------------
use Alien::Gfsm;
use Alien::GfsmXL;
my %prereq = (
	      'ExtUtils::MakeMaker' => 6.52, ##-- for CONFIGURE_REQUIRES
	      'Alien::Gfsm' => 0.001,
	      'Alien::GfsmXL' => 0.001,
	      'Gfsm' => 0.0404,
	     );

##-- ensure minimum libgfsmxl version
use version;
my $gfsmxl_min_version   = "0.0.11";
if (Alien::GfsmXL->install_type ne 'system') {
  my $gfsmxl_alien_version = (Alien::GfsmXL->can('pkgconfig')
			      ? Alien::GfsmXL->pkgconfig('gfsmxl')->keyword('Version') ##-- RT bug #124235 with Alien::Base v0.41
			    : (Alien::GfsmXL->can('config')
			       ? Alien::GfsmXL->config('version')			 ##-- Alien::Base >= v0.41
			       : undef));
  die("Failed to determine \$gfsmxl_alien_version") if (!defined($gfsmxl_alien_version));

  (my $v_alien = $gfsmxl_alien_version) =~ s/\-/_/g;
  die("Required library libgfsmxl >= v$gfsmxl_min_version not found; we have v$gfsmxl_alien_version\n")
    if (version->parse($v_alien) < version->parse($gfsmxl_min_version));
}
elsif (system("pkg-config --atleast-version=${gfsmxl_min_version} gfsmxl") != 0) {
  die("Required library libgfsmxl >= v$gfsmxl_min_version not found; we have v", `pkg-config --modversion gfsmxl`);
}

##----------------------------------------------------------------------
## MAIN
##----------------------------------------------------------------------
WriteMakefile
  (
   NAME		=> 'Gfsm::XL',
   #DISTNAME	=> 'gfsmxl-perl',
   DISTNAME	=> 'Gfsm-XL',
   AUTHOR       => 'Bryan Jurish <moocow@cpan.org>',
   ABSTRACT	=> 'Perl interface to libgfsmxl finite-state cascade library',
   VERSION_FROM	=> 'XL.pm',
   LICENSE => 'perl',

   ##-- prerequisites
   CONFIGURE_REQUIRES => \%prereq,
   PREREQ_PM => \%prereq,

   ##-- user variables
   #CC           => 'c++',   ##-- your c++ compiler
   LIBS         => join(' ', Alien::Gfsm->libs,   Alien::GfsmXL->libs),      ##-- additional libraries
   INC          => join(' ', Alien::Gfsm->cflags, Alien::GfsmXL->cflags),    ##-- additional includes
   DEFINE       => '-DHAVE_CONFIG_H',	     ##-- additional defines
   CCFLAGS      => '',                        ##-- additional flags
   OBJECT       => 'XL.o GfsmXLPerl.o',
   OPTIMIZE     => '-O2 -pipe',

   ##-- scripts
   EXE_FILES => [glob('gfsmxl*.perl')],

   ##-- DEBUG
   #MAKEAPERL=>1,
   #LINKTYPE=>'static',
   #MAP_TARGET=>'gfsmperl',
   #CCFLAGS=>'-g',
   ##-- /DEBUG

   ##-- stuff that probably doesn't need to be changed
   #XSOPT        => '-C++',
   TYPEMAPS     => ['perlobject.map', 'typemap'],
  );


#-----------------------------------------------------------------------
# Extensions
#-----------------------------------------------------------------------
##...

sub MY::depend {
  package MY;
  my $inherited = shift->SUPER::depend(@_);
  $inherited .= (
		 "\n\n"
		 ##-- included xs dependencies
		 ."XL.c: "
		 .(''
		   ." Cascade.xs"
		   ." Lookup.xs"
		   ." XL.xs"
		  )
		 ."\n\n"
		 ##-- c->o dependencies
		 ."XL.o: XL.c GfsmXLPerl.h\n"
		 ."\n"
		 ."GfsmXLPerl.o: GfsmXLPerl.h GfsmXLPerl.c\n"
		 ."\n"
		 ###-- readme
		 ."dist: README.txt\n"
		 ."\n"
		 ."create_distdir: README.txt\n"
		 #."distdir_am: README.txt\n"



( run in 0.908 second using v1.01-cache-2.11-cpan-63c85eba8c4 )