1 # Copyright 2007 MJ Ray
3 # This file is part of Koha.
5 # Koha is free software; you can redistribute it and/or modify it under the
6 # terms of the GNU General Public License as published by the Free Software
7 # Foundation; either version 2 of the License, or (at your option) any later
10 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License along with
15 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
16 # Suite 330, Boston, MA 02111-1307 USA
18 # Current maintainer MJR http://mjr.towers.org.uk/
19 # See http://www.koha.org/wiki/?page=KohaInstaller
21 use ExtUtils::MakeMaker;
24 die "perl 5.6.1 or later required" unless ($] >= 5.006001);
28 Makefile.PL - Koha packager and installer
40 This is a packager and installer that uses
41 ExtUtils::MakeMaker, which is fairly common
43 As well as building tar or zip files
45 it allows us to check pre-requisites
46 and generate configuration files.
50 =head2 NAME, VERSION, ABSTRACT, AUTHOR
52 Basic metadata about this software.
56 Suppress generation of META.yml file.
60 Hash of perl modules and versions required.
68 Maybe use prompt() here in future to get configuration values at installation time.
72 This is a hash of PL scripts to run after installation and
73 the files to ask them to generate.
74 Maybe use the values from CONFIGURE
75 to generate initial configuration files.
82 VERSION => strftime('2.9.%Y%m%d%H',gmtime),
83 ABSTRACT => 'Award-winning integrated library system (ILS) and Web OPAC',
84 AUTHOR => 'Koha Developers <koha-devel@nongnu.org>',
89 'CGI::Session' => '4.10',
90 'Class::Accessor' => 0.30,
91 'DBD::mysql' => 3.0008,
93 'Data::Dumper' => 2.121_08,
94 'Data::Random' => 0.05,
96 'Date::Manip' => 5.44,
97 'Digest::MD5' => 2.36,
100 'GD::Barcode::UPCE' => 1.1,
101 'Getopt::Long' => 2.35,
102 'Getopt::Std' => 1.05,
103 'HTML::Template' => 2.8,
104 'HTML::Template::Pro' => 0.65,
105 'HTML::Tree' => 3.1901,
106 'HTTP::Cookies' => 1.39,
107 'HTTP::Request::Common' => 1.26,
108 'LWP::Simple' => 1.41,
109 'LWP::UserAgent' => 2.033,
110 'Lingua::Stem' => 0.82,
111 'List::Util' => 1.18,
112 'Locale::Language' => 2.07,
113 'MARC::Charset' => 0.95,
114 'MARC::File::XML' => 0.86,
115 'MARC::Record' => 1.38,
116 'MIME::Base64' => 3.07,
117 'MIME::QuotedPrint' => 3.07,
118 'Mail::Sendmail' => 0.79,
120 'Net::Z3950::ZOOM' => 1.16,
121 'PDF::API2' => 2.000,
122 'PDF::API2::Page' => 2.000,
123 'PDF::API2::Util' => 2.000,
124 'PDF::Reuse' => 0.33,
125 'PDF::Reuse::Barcode' => 0.05,
127 'Term::ANSIColor' => 1.10,
129 'Test::Harness' => 2.56,
130 'Test::More' => 0.62,
131 'Text::Wrap' => 2005.082401,
132 'Time::HiRes' => 1.86,
133 'Time::localtime' => 1.02,
134 'Unicode::Normalize' => 0.32,
135 'XML::LibXML' => 1.59,
136 'XML::SAX::ParserFactory' => 1.01,
137 'XML::Simple' => 2.14,
146 # # Ask for options with prompt($question,$default) calls here?
147 # return { macro => { 'export TEST' => '755' } }
150 # PL_FILES => { # generator => target
151 # 'opac/getfromintranet.PL' => ['$(INST_LIBDIR)/opac/cgi-bin/detail.pl','$(INST_LIBDIR)/opac/cgi-bin/moredetail.pl','$(INST_LIBDIR)/opac/cgi-bin/search.pl','$(INST_LIBDIR)/opac/cgi-bin/subjectsearch.pl','$(INST_LIBDIR)/opac/cgi-bin/logout.pl'],
152 # 'misc/koha.conf.PL' => '$(INST_LIBDIR)/../etc/koha.conf',
153 # 'misc/apache-koha.conf.PL' => '$(INST_LIBDIR)/../etc/apache-koha.conf',
154 # 'misc/koha.sql.PL' => '$(INST_LIBDIR)/intranet/scripts/koha.sql',
155 # 'z3950/z3950-daemon-options.PL' => '$(INST_LIBDIR)/intranet/scripts/z3950daemon/z3950-daemon-options',
156 # # fake target to check permissions
157 # 'misc/chmod.PL' => '$(INST_LIBDIR)/fake-target'
159 # need to set ownerships
160 # need to load koha.sql
161 # need to link koha-httpd.conf
162 # need to start z3950-daemon
169 This function lists all files and where to install each one.
170 It returns a hash reference suitable for PM.
179 C4/*.pm is copied to perl's lib namespace.
182 foreach my $src (glob("C4/*.pm")) {
183 $result{$src} = '$(INST_LIBDIR)/'.$src;
188 CGIs are copied to koha/cgi-bin
189 and other scripts to koha/examples.
192 # Misc scripts to koha/examples
193 foreach my $src (glob("*.pl"),glob("*/*.pl"),glob("installer/*.pm"),glob("*/*/*.pl"),glob("*/*/*/*.pl")) {
194 if ($src =~ /(misc|updater|rss)\//) {
195 $result{$src} = '$(INST_LIBDIR)/koha/scripts/'.$src;
197 $result{$src} = '$(INST_LIBDIR)/koha/cgi-bin/'.$src;
203 Templates are copied to koha/templates,
206 foreach my $src (glob("koha-tmpl/*"),glob("koha-tmpl/intranet-tmpl/*/*/*"),glob("koha-tmpl/intranet-tmpl/*/*/*/*"),glob("koha-tmpl/intranet-tmpl/*/*/*/*/*"),glob("koha-tmpl/opac-tmpl/*/*/*"),glob("koha-tmpl/opac-tmpl/*/*/*/*"),glob("koha-tmpl/opac-tmpl/*/*/*/*/*")) {
210 excluding non-files, CVS files and whitespace in filenames.
213 if ((-f $src) && ($src !~ /(\/CVS\/|\s)/)) {
214 $result{$src} = '$(INST_LIBDIR)/koha/templates/'.$src;
226 ExtUtils::MakeMaker(3)