1#!/usr/bin/perl -w
2# $Id: Makefile.PL,v 1.9 2003/11/16 07:07:26 ianb Exp $
3# ianb@nessie.mcc.ac.uk 20031019
4
5use ExtUtils::MakeMaker;
6
7WriteMakefile(NAME=>"mp3lint",
8			  VERSION_FROM=>"bin/mp3lint",
9			  EXE_FILES=>["bin/mp3lint", "bin/mp3lintskip", "bin/mp3lintsum"],
10			  PL_FILES=>{"docs/mp3lint-tools.pod.PL" => "docs/mp3lint-tools.pod" },
11			  MAN1PODS=>{ "bin/mp3lint"            => '${INST_MAN1DIR}/mp3lint.1',
12						  "bin/mp3lintskip"        => '${INST_MAN1DIR}/mp3lintskip.1',
13						  "bin/mp3lintsum"         => '${INST_MAN1DIR}/mp3lintsum.1',},
14			  MAN3PODS=>{ "docs/mp3lint-tools.pod" => '${INST_MAN3DIR}/mp3lint-tools.3',},
15			  PREREQ_PM=>{'MP3::Archive' => 0},
16			  clean=>{ FILES => "docs/mp3lint-tools.pod" },
17			  dist=>{ COMPRESS=>"gzip -9f", SUFFIX=>"gz", },
18			  ($] >= 5.005
19			   ? (ABSTRACT   => 'Checks a tree of audio files',
20				  AUTHOR     => 'Ian Beckwith <ianb@nessie.mcc.ac.uk>')
21			   : ()),
22			  );
23
24
25# man 5 stuff adapted from vipul's razor, http://razor.sf.net
26
27{
28package MY;
29
30sub constants {
31
32    my $self = shift;
33    my $inherited = $self->SUPER::constants(@_);
34
35    my $add = q{
36
37# begin mp3lint
38MAN5PODS = docs/mp3lintrc.pod
39INST_MAN5DIR = blib/man5
40INSTALLMAN5DIR = $(PREFIX)/man/man5
41DESTINSTALLMAN5DIR = $(DESTDIR)$(INSTALLMAN5DIR)
42INSTALLSITEMAN5DIR = $(SITEPREFIX)/man/man5
43DESTINSTALLSITEMAN5DIR = $(DESTDIR)$(INSTALLSITEMAN5DIR)
44INSTALLVENDORMAN5DIR = $(VENDORPREFIX)/man/man5
45DESTINSTALLVENDORMAN5DIR = $(DESTDIR)$(INSTALLVENDORMAN5DIR)
46MAN5EXT = 5
47INST_SYSCONFDIR = blib/etc
48INSTALLSYSCONFDIR = /usr/local/etc
49DESTINSTALLSYSCONFDIR = $(DESTDIR)$(INSTALLSYSCONFDIR)
50# end mp3lint
51
52};
53
54    return $inherited . $add;
55
56}
57
58
59sub MY::top_targets {
60
61    use Config;
62
63    my $self = shift;
64    my $inherited = $self->SUPER::top_targets(@_);
65
66	my ($perlh) = $self->catfile($Config{archlibexp}, 'CORE', "perl.h");
67
68    my $noecho = q{NOECHO = @} unless $inherited =~ /NOECHO/;
69
70    my $add = sprintf <<'MAKE_FRAG', $perlh, $perlh, $perlh, $perlh;
71
72# begin mp3lint
73config :: $(INST_MAN5DIR)/.exists $(INST_SYSCONFDIR)/.exists
74	@$(NOOP)
75
76$(INST_MAN5DIR)/.exists :: %s
77	@$(MKPATH) $(INST_MAN5DIR)
78	@$(EQUALIZE_TIMESTAMP) %s $(INST_MAN5DIR)/.exists
79	-@$(CHMOD) $(PERM_RWX) $(INST_MAN5DIR)
80
81$(INST_SYSCONFDIR)/.exists :: %s
82	@$(MKPATH) $(INST_SYSCONFDIR)
83	@$(EQUALIZE_TIMESTAMP) %s $(INST_SYSCONFDIR)/.exists
84	-@$(CHMOD) $(PERM_RWX) $(INST_SYSCONFDIR)
85	@$(CP) etc/mp3lintrc $(INST_SYSCONFDIR)
86# end mp3lint
87
88MAKE_FRAG
89
90    return $inherited . $add;
91}
92
93
94sub MY::manifypods {
95    my $self = shift;
96    my $inherited = $self->SUPER::manifypods(@_);
97
98    $inherited =~ s{^(manifypods : .*)\\}{$1 manifypods-local \\}m;
99
100    # MakeMaker 6.06_x through 6.13 eliminated the POD2MAN macro.
101    my $pod2man = "";
102	unless ($inherited =~ /^POD2MAN\b/m)
103	{
104		$pod2man=q{POD2MAN = $(POD2MAN_EXE)};
105	}
106	my $manifypods_local = sprintf <<'MAKE_FRAG', $pod2man;
107
108# begin mp3lint
109%s
110
111manifypods-local : docs/mp3lintrc.pod
112	$(POD2MAN) -s $(MAN5EXT) docs/mp3lintrc.pod $(INST_MAN5DIR)/mp3lintrc.$(MAN5EXT)
113
114#end mp3lint
115MAKE_FRAG
116
117    return $inherited . "\n" . $manifypods_local;
118
119}
120
121
122sub MY::install {
123
124  my $self = shift;
125  my $inherited = $self->SUPER::install(@_);
126  my $conf="\t\t\$(INST_SYSCONFDIR) \$(DESTINSTALLSYSCONFDIR)";
127  $inherited =~ s/(^\s*"?\$\(INST_MAN)3(DIR"?.*MAN)3(DIR\)"?)/${1}3${2}3$3 \\\n${1}5${2}5$3 \\\n$conf/gm;
128
129  return $inherited;
130}
131
132}
133