1#!/usr/bin/perl -s
2##
3## Makefile for Vipul's Razor v2.
4##
5## Copyright (c) 1998-2002
6## This code is free software; you can redistribute it and/or modify
7## it under the same terms as Perl itself.
8##
9## $Id: Makefile.PL,v 1.30 2007/05/08 22:47:53 rsoderberg Exp $
10
11use ExtUtils::MakeMaker;
12
13WriteMakefile (
14    DISTNAME      => 'razor-agents',
15    NAME          => 'razor-agents',
16    AUTHOR        => 'Vipul Ved Prakash <mail@vipul.net>',
17    ABSTRACT      => 'Collaborative, content-based spam filtering network agent.',
18    VERSION_FROM  => 'lib/Razor2/Client/Version.pm',
19    EXE_FILES     => [ qw( bin/razor-client bin/razor-admin bin/razor-check bin/razor-report bin/razor-revoke ) ],
20    PREREQ_PM     => {
21                       'Digest::SHA1'     => 0,
22                       'File::Copy'       => 0,
23                       'File::Spec'       => 0,
24                       'Getopt::Long'     => 0,
25                       'MIME::Base64'     => 0,
26                       'Test::More'       => 0,
27                       'Time::HiRes'      => 0,
28                       'URI::Escape'      => 0,
29                     },
30	MAN1PODS      => {
31                       'docs/razor-check.pod'    => '$(INST_MAN1DIR)/razor-check.1',
32                       'docs/razor-report.pod'   => '$(INST_MAN1DIR)/razor-report.1',
33                       'docs/razor-admin.pod'    => '$(INST_MAN1DIR)/razor-admin.1',
34                       'docs/razor-revoke.pod'   => '$(INST_MAN1DIR)/razor-revoke.1',
35                     },
36    dist          => {
37                       'COMPRESS'   => 'bzip2',
38                       'SUFFIX'     => '.bz2',
39                       'TARFLAGS'   => '--owner root --group root -cvf',
40                     },
41);
42
43{
44package MY;
45
46sub constants {
47
48    my $self = shift;
49    my $inherited = $self->SUPER::constants(@_);
50
51    my $prefix = $ExtUtils::MakeMaker::VERSION >= 6.18 ? 'SITEPREFIX' :
52                                                         'PERLPREFIX';
53
54    my $man5 = sprintf <<'MAKE', $prefix;
55
56# begin razor-agents
57MAN5PODS = docs/razor-agent.conf.pod \
58	   docs/razor-whitelist.pod  \
59	   docs/razor-agents.pod
60INST_MAN5DIR = blib/man5
61DESTINSTALLMAN5DIR = $(DESTDIR)$(PREFIX)/lib/perl5/site_perl/man/man5
62DESTINSTALLSITEMAN5DIR = $(DESTDIR)$(SITEPREFIX)/lib/perl5/site_perl/man/man5
63DESTINSTALLVENDORMAN5DIR = $(DESTDIR)$(VENDORPREFIX)/lib/perl5/site_perl/man/man5
64MAN5EXT = 5
65# end razor-agents
66
67MAKE
68
69    return $inherited . $man5;
70
71}
72
73
74sub MY::top_targets {
75
76    use Config;
77
78    my $self = shift;
79    my $inherited = $self->SUPER::top_targets(@_);
80
81    my ($perlh) = $self->catfile($Config{archlibexp}, 'CORE', "perl.h");
82
83    my $noecho = q{NOECHO = @} unless $inherited =~ /NOECHO/;
84
85    my $man5 = sprintf <<'MAKE_FRAG', $perlh, $perlh;
86
87# begin razor-agents
88config :: $(INST_MAN5DIR)/.exists
89	@$(NOOP)
90
91$(INST_MAN5DIR)/.exists :: %s
92	@$(MKPATH) $(INST_MAN5DIR)
93	@$(EQUALIZE_TIMESTAMP) %s $(INST_MAN5DIR)/.exists
94	-@$(CHMOD) $(PERM_RWX) $(INST_MAN5DIR)
95# end razor-agents
96
97MAKE_FRAG
98
99    return $inherited . $man5;
100}
101
102
103sub MY::manifypods {
104    my $self = shift;
105    my $inherited = $self->SUPER::manifypods(@_);
106
107    $inherited =~ s{^(manifypods : .*)\\}{$1 manifypods-razor \\}m;
108
109    # MakeMaker 6.06_x through 6.13 eliminated the POD2MAN macro.
110    my $pod2man = $inherited =~ /^POD2MAN\b/m ? ''
111                                              : 'POD2MAN = $(POD2MAN_EXE)';
112
113    my $manifypods_razor = sprintf <<'MAKE_FRAG', $pod2man;
114
115# begin razor-agents
116%s
117
118manifypods-razor : docs/razor-agent.conf.pod \
119	docs/razor-agents.pod                \
120	docs/razor-whitelist.pod
121	$(POD2MAN) \
122	docs/razor-agent.conf.pod \
123	$(INST_MAN5DIR)/razor-agent.conf.$(MAN5EXT) \
124	docs/razor-agents.pod \
125	$(INST_MAN5DIR)/razor-agents.$(MAN5EXT) \
126	docs/razor-whitelist.pod \
127	$(INST_MAN5DIR)/razor-whitelist.$(MAN5EXT)
128
129#end razor-agents
130MAKE_FRAG
131
132    return $inherited . "\n" . $manifypods_razor;
133
134}
135
136
137sub MY::install {
138
139  my $self = shift;
140  my $inherited = $self->SUPER::install(@_);
141
142  $inherited =~ s/(^\s*"?\$\(INST_MAN)3(DIR"?.*MAN)3(DIR\)"?)/${1}3${2}3$3 \\\n${1}5${2}5$3/gm;
143
144  return $inherited;
145}
146
147}
148