added header_first to WebPAC::Input::CSV
[webpac2] / Makefile.PL
1 use strict;
2 use warnings;
3 #use ExtUtils::MakeMaker;
4 use inc::Module::Install;
5
6
7 name    'WebPAC';
8 version_from 'lib/WebPAC.pm';
9 license 'GPL';
10
11 requires        'YAML';
12 requires        'File::Slurp';
13 requires        'Log::Log4perl' => '1.02';
14 requires        'Cwd';
15 requires        'Storable';
16 #requires       'DBM::Deep';
17 #       'Template';
18 requires        'Time::HiRes';
19 requires        'File::Temp';
20 requires        'List::Util';
21 requires        'Encode';
22 requires        'LWP';
23 requires        'File::Path';
24 requires        'Biblio::Isis' => '0.24';
25 requires        'MARC::Fast' => '0.12';
26 requires        'List::Util';
27 requires        'MARC::Record' => '2.0';
28 requires        'MARC::File::XML';
29 requires        'Data::Dump';
30 requires        'MARC::Lint' => '1.43';
31 requires        'Business::ISBN' => '2.02';     # WebPAC::Normalize::ISBN
32 requires        'PPI';
33 requires        'XML::LibXML';
34 requires        'Pod::Usage';
35 requires        'Class::Accessor';
36 requires        'JSON';
37 requires        'File::Spec';
38
39 features(
40         'WebPAC::Input::XML' => [
41                 -default => 0,
42                 'XML::Simple',
43                 'File::Find',
44         ],
45         'WebPAC::Input::PDF' => [
46                 -default => 0,
47                 'CAM::PDF',
48         ],
49         'WebPAC::Input::Excel' => [
50                 -default => 1,
51                 'Spreadsheet::ParseExcel',
52         ],
53         'WebPAC::Input::CSV' => [
54                 -default => 1,
55                 'Text::CSV',
56         ],
57         'WebPAC::Input::DBF' => [
58                 -default => 0,
59                 'XBase',
60         ],
61         'WebPAC::Input::OAI' => [
62                 -default => 0,
63                 'HTTP::OAI',
64         ],
65         'WebPAC::Output::Estraier' => [
66                 -default => 0,
67                 'Search::Estraier' => 0.06,
68         ],
69         'WebPAC::Output::Webpacus and WebPAC::Output::Jifty' => [
70                 -default => 0,
71                 'Jifty',
72         ],
73         'WebPAC::Output::Excel' => [
74                 -default => 1,
75                 'Spreadsheet::WriteExcel' => 2.14,
76         ],
77         'WebPAC::Output::KinoSearch' => [
78                 -default => 0,
79                 'KinoSearch::Simple',
80         ],
81         'WebPAC::Output::SWISH' => [
82                 -default => 1,
83                 'SWISH::API',
84         ],
85         'WebPAC::Output::CouchDB' => [
86                 -default => 0,
87                 'Net::CouchDb',
88         ],
89         'WebPAC::Output::Sorted' => [
90                 -default => 0,
91                 'Sort::External',
92         ],
93         'WebPAC::Output::Riak' => [
94                 -default => 0,
95                 'Net::Riak',
96         ],
97         'Parallel execution (probably broken)' => [
98                 -default => 0,
99                 'Proc::Queue',
100         ],
101         'CGI web interface' => [
102                 -default => 0,
103                 'Data::Page',
104                 'CGI',
105                 'CGI::Carp',
106                 'SWISH::API',
107                 'Text::Unaccent::PurePerl',
108                 'HTML::FillInForm::Lite',
109         ],
110 );
111
112 build_requires 'Test::More';
113
114 clean_files('WebPAC-* pod2html Makefile tags');
115
116 auto_install;
117
118 WriteAll;
119
120 sub MY::postamble {
121         return <<'MAKE_MORE';
122
123 HTML_DIR=pod2html
124 # no need to include --limit here!
125 #profile_perl=./run.pl --only ffps --stats
126 #profile_perl=./run.pl --only ffps/libri --validate conf/validate/ffps-libri
127 #profile_perl=./run.pl --only ffps --validate-delimiters conf/validate/delimiters/ffps
128 profile_perl=./run.pl --only ffps --validate conf/validate/ffps-libri --validate-delimiters conf/validate/delimiters/ffps
129
130
131 html: $(TO_INST_PM)
132         test -e $(HTML_DIR) && rm -Rf "$(HTML_DIR)" || true
133         mkdir "$(HTML_DIR)"
134
135         # add additional html documents
136         test ! -z "`which svn2html.pl`" && svk update && svn2html.pl > $(HTML_DIR)/Changes.html || true
137
138         test -e $(HTML_DIR)/pod.css || ln -s ../pod.css $(HTML_DIR)/
139
140         test ! -z "`which allpod2xhtml.pl`" && allpod2xhtml.pl --frames="WebPAC documentation" --existing --css=pod.css ./lib $(HTML_DIR)
141
142 changelog:
143         svn update && svn -v log > Changes
144
145 tags:
146         ctags *.p[ml] */*.p[ml] */*/*.p[ml]
147
148 sf:
149         svn2cvs.pl file:///home/dpavlin/private/svn/webpac2/trunk/ :ext:dpavlin@webpac.cvs.sourceforge.net:/cvsroot/webpac webpac2
150
151 config_yml:
152         test ! -e conf/config.yml && ln -s /data/Webpacus/config.yml conf/ || true
153         #perl -c conf/normalize/*.pl
154         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 {}
155
156 run: config_yml
157         rm -f log
158         ./run.pl --clean --limit 100
159
160 full: config_yml
161         rm -f log
162         ./run.pl
163
164 profile: all
165         perl -d:DProf $(profile_perl) --limit 250 && dprofpp -O 50 > profile.`perl -e 'my @p = glob("profile.[0-9]*"); print scalar @p + 1'`
166
167 profile2:
168         perl -d:SmallProf $(profile_perl) --limit 100 && sort -k 2nr,2 smallprof.out | vi -R -
169
170 MAKE_MORE
171 }