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