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