don't try to decode records as iso-8859-1, read them as utf-8
[webpac2] / Makefile.PL
index ea81bc0..c6499cb 100644 (file)
 use strict;
 use warnings;
-use ExtUtils::MakeMaker;
-
-WriteMakefile(
-    NAME                => 'WebPAC',
-    AUTHOR              => 'Dobrica Pavlinusic <dpavlin@rot13.org>',
-    VERSION_FROM        => 'lib/WebPAC.pm',
-    ABSTRACT_FROM       => 'lib/WebPAC.pm',
-    PL_FILES            => {},
-    PREREQ_PM => {
-       'Test::More' => 0,
-       'YAML' => 0,
-       'File::Slurp' => 0,
-       'Log::Log4perl' => 1.02,
-       'Data::Dumper' => 0,
-       'Cwd' => 0,
-       'Text::Iconv' => 0,
-       'Storable' => 0,
-       'DBM::Deep' => 0,
-       'XML::Simple' => 0,
-       'Template' => 0,
-       'Time::HiRes' => 0,
-       'File::Temp' => 0,
-       'List::Util' => 0,
-       'Encode' => 0,
-       'LWP' => 0,
-       'File::Path' => 0,
-       'Biblio::Isis' => 0.13,
-       'MARC::Fast' => 0.02,
-       'Search::Estraier' => 0.06,
-       'List::Util' => 0,
-       'Spreadsheet::ParseExcel', => 0,
-    },
-    dist                => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
-    clean               => { FILES => 'WebPAC-* pod2html Makefile tags' },
+#use ExtUtils::MakeMaker;
+use inc::Module::Install;
+
+
+name   'WebPAC';
+version_from 'lib/WebPAC.pm';
+license        'GPL';
+
+requires       'YAML';
+requires       'File::Slurp';
+requires       'Log::Log4perl' => '1.02';
+requires       'Cwd';
+requires       'Storable';
+#requires      'DBM::Deep';
+#      'Template';
+requires       'Time::HiRes';
+requires       'File::Temp';
+requires       'List::Util';
+requires       'Encode';
+requires       'LWP';
+requires       'File::Path';
+requires       'Biblio::Isis' => '0.24';
+requires       'MARC::Fast' => '0.12';
+requires       'List::Util';
+requires       'MARC::Record' => '2.0';
+requires       'Data::Dump';
+requires       'MARC::Lint' => '1.43';
+requires       'Business::ISBN' => '2.02';     # WebPAC::Normalize::ISBN
+requires       'PPI';
+requires       'XML::LibXML';
+requires       'Pod::Usage';
+requires       'Class::Accessor';
+requires       'JSON';
+requires       'File::Spec';
+
+features(
+       'WebPAC::Input::XML' => [
+               -default => 0,
+               'XML::Simple',
+               'File::Find',
+       ],
+       'WebPAC::Input::PDF' => [
+               -default => 0,
+               'CAM::PDF',
+       ],
+       'WebPAC::Input::Excel' => [
+               -default => 1,
+               'Spreadsheet::ParseExcel',
+       ],
+       'WebPAC::Input::CSV' => [
+               -default => 1,
+               'Text::CSV',
+       ],
+       'WebPAC::Input::DBF' => [
+               -default => 0,
+               'XBase',
+       ],
+       'WebPAC::Input::OAI' => [
+               -default => 0,
+               'HTTP::OAI',
+       ],
+       'WebPAC::Output::Estraier' => [
+               -default => 0,
+               'Search::Estraier' => 0.06,
+       ],
+       'WebPAC::Output::Webpacus and WebPAC::Output::Jifty' => [
+               -default => 0,
+               'Jifty',
+       ],
+       'WebPAC::Output::Excel' => [
+               -default => 1,
+               'Spreadsheet::WriteExcel' => 2.14,
+       ],
+       'WebPAC::Output::KinoSearch' => [
+               -default => 0,
+               'KinoSearch::Simple',
+       ],
+       'WebPAC::Output::SWISH' => [
+               -default => 1,
+               'SWISH::API',
+       ],
+       'WebPAC::Output::CouchDB' => [
+               -default => 0,
+               'Net::CouchDb',
+       ],
+       'WebPAC::Output::Sorted' => [
+               -default => 0,
+               'Sort::External',
+       ],
+       'WebPAC::Output::Riak' => [
+               -default => 0,
+               'Net::Riak',
+       ],
+       'Parallel execution (probably broken)' => [
+               -default => 0,
+               'Proc::Queue',
+       ],
+       'CGI web interface' => [
+               -default => 0,
+               'Data::Page',
+               'CGI',
+               'CGI::Carp',
+               'SWISH::API',
+               'Text::Unaccent::PurePerl',
+               'HTML::FillInForm::Lite',
+       ],
 );
 
+build_requires 'Test::More';
+
+clean_files('WebPAC-* pod2html Makefile tags');
+
+auto_install;
+
+WriteAll;
+
 sub MY::postamble {
        return <<'MAKE_MORE';
 
 HTML_DIR=pod2html
-profile_perl=./run.pl
+# no need to include --limit here!
+#profile_perl=./run.pl --only ffps --stats
+#profile_perl=./run.pl --only ffps/libri --validate conf/validate/ffps-libri
+#profile_perl=./run.pl --only ffps --validate-delimiters conf/validate/delimiters/ffps
+profile_perl=./run.pl --only ffps --validate conf/validate/ffps-libri --validate-delimiters conf/validate/delimiters/ffps
+
 
 html: $(TO_INST_PM)
-       test -e $(HTML_DIR) || mkdir $(HTML_DIR)
+       test -e $(HTML_DIR) && rm -Rf "$(HTML_DIR)" || true
+       mkdir "$(HTML_DIR)"
+
+       # add additional html documents
+       test ! -z "`which svn2html.pl`" && svk update && svn2html.pl > $(HTML_DIR)/Changes.html || true
+
+       test -e $(HTML_DIR)/pod.css || ln -s ../pod.css $(HTML_DIR)/
 
-       test ! -z "`which allpod2xhtml.pl`" && allpod2xhtml.pl ./lib $(HTML_DIR)
-       test ! -z "`which svn2html.pl`" && svn update && svn2html.pl > $(HTML_DIR)/Changes.html
+       test ! -z "`which allpod2xhtml.pl`" && allpod2xhtml.pl --frames="WebPAC documentation" --existing --css=pod.css ./lib $(HTML_DIR)
 
 changelog:
        svn update && svn -v log > Changes
@@ -55,10 +145,12 @@ tags:
        ctags *.p[ml] */*.p[ml] */*/*.p[ml]
 
 sf:
-       svn2cvs.pl file:///home/dpavlin/private/svn/webpac2/trunk/ :ext:dpavlin@cvs.sourceforge.net:/cvsroot/webpac webpac2
+       svn2cvs.pl file:///home/dpavlin/private/svn/webpac2/trunk/ :ext:dpavlin@webpac.cvs.sourceforge.net:/cvsroot/webpac webpac2
 
 config_yml:
        test ! -e conf/config.yml && ln -s /data/Webpacus/config.yml conf/ || true
+       #perl -c conf/normalize/*.pl
+       perl -c conf/normalize/*.pl 2>&1 | grep 'conf/normalize' | grep -v 'OK' | sed -e 's#^.*conf/normalize#conf/normalize#' -e 's#,##' | awk '{ print "+" $3 " " $1 }' | xargs -i echo vi {}
 
 run: config_yml
        rm -f log
@@ -68,8 +160,8 @@ full: config_yml
        rm -f log
        ./run.pl
 
-profile:
-       perl -d:DProf $(profile_perl) --limit 500 && dprofpp > profile.`perl -e 'my @p = glob("profile.[0-9]*"); print scalar @p + 1'`
+profile: all
+       perl -d:DProf $(profile_perl) --limit 250 && dprofpp -O 50 > profile.`perl -e 'my @p = glob("profile.[0-9]*"); print scalar @p + 1'`
 
 profile2:
        perl -d:SmallProf $(profile_perl) --limit 100 && sort -k 2nr,2 smallprof.out | vi -R -