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