#!/usr/bin/perl -w
# Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016 Kevin Ryde
# This file is part of Math-NumSeq.
#
# Math-NumSeq is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3, or (at your option) any later
# version.
#
# Math-NumSeq is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License along
# with Math-NumSeq. If not, see .
use 5.004;
use strict;
use ExtUtils::MakeMaker;
my %expression_modules = ('Math::Symbolic' => 0,
'Math::Expression::Evaluator' => 0,
# incompatible changes in 0.24
'Language::Expr' => 0.24,
'Language::Expr::Compiler::perl' => 0.24,
);
WriteMakefile
(NAME => 'Math::NumSeq',
ABSTRACT => 'Number sequences.',
VERSION_FROM => 'lib/Math/NumSeq.pm',
PREREQ_PM => {
'constant' => 1.02, # for leading underscore
'constant::defer' => 1,
'File::HomeDir' => 0,
'File::Spec' => 0,
'File::Temp' => 0,
'List::Util' => 0,
'Math::Libm' => 0,
'Math::Prime::XS' => '0.23', # version 0.23 for fix 1928099
'Module::Pluggable' => 0,
# version 0.40 for factors() on Math::BigInt
'Math::Factor::XS' => '0.40',
'Module::Util' => 0,
'Module::Load' => 0,
},
TEST_REQUIRES => {
'Test' => 0,
},
AUTHOR => 'Kevin Ryde ',
LICENSE => 'gpl_3',
SIGN => 1,
MIN_PERL_VERSION => '5.004',
META_MERGE =>
{ 'meta-spec' => { version => 2 },
no_index => { directory=>['devel','xt'] },
resources =>
{ homepage => 'http://user42.tuxfamily.org/math-numseq/index.html',
license => 'http://www.gnu.org/licenses/gpl.html',
},
recommends =>
{ 'Math::Prime::XS' => '0.26', # v.26 for faster is_prime()
# version 4.7 to avoid warnings about removal from the core perl dist
# which was a ridiculous way to communicate to authors
'Module::Pluggable' => '4.7',
},
prereqs =>
{ runtime =>
{ suggests =>
{ %expression_modules,
}
},
test =>
{ suggests =>
# have "make test" do as much as possible
{ 'Data::Float' => 0,
%expression_modules,
}
},
},
optional_features =>
{ maximum_interoperation =>
{ description => 'Have maximum inter-operation with other modules (optional other stuff).',
prereqs =>
{ runtime =>
{ requires =>
{ %expression_modules,
},
},
},
},
},
},
);
#------------------------------------------------------------------------------
# updating BuiltinTable.pm
package MY;
sub postamble {
my ($makemaker) = @_;
return <<'HERE';
oeis lib/Math/NumSeq/OEIS/Catalogue/Plugin/BuiltinTable.pm: tools/make-oeis-catalogue.pl lib/Math/NumSeq/*.pm
$(PERL) tools/make-oeis-catalogue.pl || (rm -f $@; false)
HERE
}