switch to MakeMaker, rip off man8 stuff from vipuls razor, via mat
[id3fs.git] / Makefile.PL
1 #!/usr/bin/perl -w
2
3 use ExtUtils::MakeMaker;
4
5 my @binscripts=qw(id3fs-index);
6 my @sbinscripts=qw(id3fsd);
7
8 WriteMakefile(NAME=>"id3fs",
9               VERSION=>"1.0",
10               EXE_FILES=>[ map( "bin/$_", @binscripts), map( "sbin/$_", @sbinscripts) ],
11               MAN1PODS=>{ map({ +"bin/$_" => "\${INST_MAN1DIR}/$_.1" } @binscripts) },
12               MAN8PODS=>{ map({ +"sbin/$_" => "\${INST_MAN8DIR}/$_.8" } @sbinscripts) },
13               PREREQ_PM=>{ 'Fuse'        => 0,
14                            'DBI'         => 0,
15                            'DBD::Sqlite' => 0} ,
16 #             dist=>{ COMPRESS=>"gzip -9f", SUFFIX=>"gz", },
17               ($] >= 5.005
18                ? (ABSTRACT   => 'FUSE-based filesystem for browsing music metadata',
19                   AUTHOR     => 'Ian Beckwith <ianb@erislabs.net>')
20                : ()),
21               );
22
23 # man 5/8 stuff adapted from vipul's razor, http://razor.sf.net
24
25 {
26 package MY;
27
28 sub constants {
29
30     my $self = shift;
31     my $inherited = $self->SUPER::constants(@_);
32
33     my $add = q{
34
35 # begin id3fs
36 #MAN5PODS = docs/mp3lintrc.pod
37 INST_MAN8DIR = blib/man8
38 INSTALLMAN8DIR = $(PREFIX)/man/man8
39 DESTINSTALLMAN8DIR = $(DESTDIR)$(INSTALLMAN8DIR)
40 INSTALLSITEMAN8DIR = $(SITEPREFIX)/man/man8
41 DESTINSTALLSITEMAN8DIR = $(DESTDIR)$(INSTALLSITEMAN8DIR)
42 INSTALLVENDORMAN8DIR = $(VENDORPREFIX)/man/man8
43 DESTINSTALLVENDORMAN8DIR = $(DESTDIR)$(INSTALLVENDORMAN8DIR)
44 MAN8EXT = 8
45 INST_SYSCONFDIR = blib/etc
46 INSTALLSYSCONFDIR = /etc
47 DESTINSTALLSYSCONFDIR = $(DESTDIR)$(INSTALLSYSCONFDIR)  
48 # end id3fs
49
50 };
51
52     return $inherited . $add;
53
54 }
55
56
57 sub MY::top_targets {
58
59     use Config;
60
61     my $self = shift;
62     my $inherited = $self->SUPER::top_targets(@_);
63
64     my ($perlh) = $self->catfile($Config{archlibexp}, 'CORE', "perl.h");
65
66     my $noecho = q{NOECHO = @} unless $inherited =~ /NOECHO/;
67
68     my $add = sprintf <<'MAKE_FRAG', $perlh, $perlh, $perlh, $perlh;
69
70 # begin id3fs
71 config :: $(INST_MAN8DIR)/.exists $(INST_SYSCONFDIR)/.exists
72         @$(NOOP)
73
74 $(INST_MAN8DIR)/.exists :: %s
75         @$(MKPATH) $(INST_MAN8DIR)
76         @$(EQUALIZE_TIMESTAMP) %s $(INST_MAN8DIR)/.exists
77         -@$(CHMOD) $(PERM_RWX) $(INST_MAN8DIR)
78
79 #$(INST_SYSCONFDIR)/.exists :: %s
80 #       @$(MKPATH) $(INST_SYSCONFDIR)
81 #       @$(EQUALIZE_TIMESTAMP) %s $(INST_SYSCONFDIR)/.exists
82 #       -@$(CHMOD) $(PERM_RWX) $(INST_SYSCONFDIR)
83 #       @$(CP) etc/matrc $(INST_SYSCONFDIR)
84 # end id3fs
85
86 MAKE_FRAG
87
88     return $inherited . $add;
89 }
90
91
92 sub MY::manifypods {
93     my $self = shift;
94     my $inherited = $self->SUPER::manifypods(@_);
95
96     $inherited =~ s{^(manifypods : .*)\\}{$1 manifypods-local \\}m;
97
98     # MakeMaker 6.06_x through 6.13 eliminated the POD2MAN macro.
99     my $pod2man = "";
100     unless ($inherited =~ /^POD2MAN\b/m)
101     {
102         $pod2man=q{POD2MAN = $(POD2MAN_EXE)};
103     }
104 #    my $manifypods_local = sprintf <<'MAKE_FRAG', $pod2man;
105 #
106 ## begin id3fs
107 #%s
108 #
109 #manifypods-local : docs/mp3lintrc.pod
110 #       $(POD2MAN) -s $(MAN8EXT) docs/mp3lintrc.pod $(INST_MAN8DIR)/mp3lintrc.$(MAN8EXT) 
111 #
112 ##end id3fs
113 #MAKE_FRAG
114
115     return $inherited . "\n" . $manifypods_local;
116
117 }
118
119
120 sub MY::install {
121
122   my $self = shift;
123   my $inherited = $self->SUPER::install(@_);
124   my $conf="\t\t\$(INST_SYSCONFDIR) \$(DESTINSTALLSYSCONFDIR)";
125   $inherited =~ s/(^\s*\$\(INST_MAN)3(DIR\s*.*MAN)3(DIR\))/${1}3${2}3$3 \\\n${1}8${2}8$3 \\\n$conf/gm;
126 # $inherited =~ s/(^\s*\$\(INST_MAN3DIR\s*.*MAN3DIR\))/$1 \\\n$conf/gm;
127
128   return $inherited;
129 }
130
131 }