f906fc0e145ff3b2bd2fd6ec3d6682ab52f02493
[irspy-moved-to-github.git] / Makefile.PL
1
2 use 5.008;
3 use strict;
4 use warnings;
5 use ExtUtils::MakeMaker;
6
7 my $yazver = `yaz-client -V`;
8 if (!$yazver) {
9     die qq[
10 ERROR: Unable to call program: yaz-client
11 Perhaps YAZ is not installed. Program yaz-client is part of package yaz.
12 ];
13 }
14
15 chomp($yazver);
16 # 2.1.53 is the first version with ZOOM-C fixed to properly support
17 # reconnection in asynchronous mode.
18 check_version($yazver, "2.1.53");
19
20 # See lib/ExtUtils/MakeMaker.pm for details of how to influence
21 # the contents of the Makefile that is written.
22 WriteMakefile(
23     NAME              => 'ZOOM::IRSpy',
24     VERSION_FROM      => 'lib/ZOOM/IRSpy.pm', # finds $VERSION
25     PREREQ_PM         => {
26         "Net::Z3950::ZOOM" => 1.19,
27         "XML::LibXML::XPathContext" => 0.07, # For Web UI
28         "XML::LibXML" => 1.58,
29         "XML::LibXSLT" => 1.57,
30         "URI::Escape" => 3.28, # For Web UI
31     },
32     ($] >= 5.005 ?     ## Add these new keywords supported since 5.005
33       (ABSTRACT_FROM  => 'lib/ZOOM/IRSpy.pm', # retrieve abstract from module
34        AUTHOR         => 'Mike Taylor <mike@indexdata.com>') : ()),
35     EXE_FILES    => [ 'bin/irspy.pl', 'bin/irspy-dump.pl' ],
36 );
37
38
39 sub check_version {
40     my($got, $want) = @_;
41
42     my($gmajor, $gminor, $gtrivial) = ($got =~ /(\d+)\.(\d+)\.(\d+)/);
43     my($wmajor, $wminor, $wtrivial) = ($want =~ /(\d+)\.(\d+)\.(\d+)/);
44     if (($gmajor < $wmajor) ||
45         ($gmajor == $wmajor && $gminor < $wminor) ||
46         ($gmajor == $wmajor && $gminor == $wminor && $gtrivial < $wtrivial)) {
47         print <<__EOT__;
48 *** ERROR!
49 ZOOM-Perl requires at least version $want of YAZ,
50 but is currently you only have version $got.
51 __EOT__
52         exit 1;
53     }
54 }