Merge branch 'rt-57517-file-handles'
[perl-fuse.git] / Makefile.PL
1 use ExtUtils::MakeMaker;
2 # See lib/ExtUtils/MakeMaker.pm for details of how to influence
3 # the contents of the Makefile that is written.
4
5 my $ver = `fusermount -V`;
6 my $ver2 = `mount_fusefs -V`;
7 chomp(my $ver3 = `mount_fusefs -V 2>&1 | head -n1`);
8 $ver =~ s/^.*?version:\s+//;
9 $ver2 =~ s/^.*?version:\s+//;
10 $ver3 =~ s/^.*?version\s+//;
11 if (! $ver && ! $ver2 && ! $ver3) {
12         # make CPANPLUS happy and don't report errors if fuse isn't installed
13         die("No support for os: $^O\n",
14                 "You need to have fuse-dev (or similar) package installed and have sufficient permissions in order to install this module\n",
15                 $^O eq 'darwin' ? ("One option on Mac is http://code.google.com/p/macfuse/\n") : (),
16         );
17 }
18 if ($ver && $ver + 0 < 2.5) {
19         die "Fuse perl bindings need Linux fuse version 2.5 or newer\n";
20 } elsif ($ver2 && $ver2 + 0 < 0.3) {
21         die "Fuse perl bindings need FreeBSD fuse version 0.3 or newer\n";
22 } elsif ($^O eq 'darwin' && $ver3 && !(($ver3 ge "0.1.0b006") || ($ver3 eq "0.1.0"))) {
23         # the "ge" string-compare check will match all later revs and all later
24         # betas, but not the final release of the current rev (0.1.0).
25         die "Fuse perl bindings need MacFUSE version 0.1.0b006 or newer, your version is \"$ver3\"\n";
26 } else {
27         warn "fuse version found: ", $ver || $ver2 || $ver3, "\n";
28 }
29
30 my $inc = '-DFUSE_USE_VERSION=25 ' . `pkg-config --cflags fuse` || '-I ../include -D_FILE_OFFSET_BITS=64';
31 my $obj = `pkg-config --libs fuse` || '-lfuse';
32 my $def = '-Wall -g -ggdb';
33 $def .= ' -D__FreeBSD__=10 -D_FILE_OFFSET_BITS=64' if $^O eq 'darwin';
34
35 WriteMakefile(
36         'NAME'                  => 'Fuse',
37         'VERSION_FROM'  => 'Fuse.pm', # finds $VERSION
38         'PREREQ_PM'             => {}, # e.g., Module::Name => 1.1
39         ($] >= 5.005 ?  ## Add these new keywords supported since 5.005
40                 (ABSTRACT_FROM  => 'Fuse.pm', # retrieve abstract from module
41                 AUTHOR                  => 'Mark Glines <mark@glines.org>') : ()),
42                 ($ExtUtils::MakeMaker::VERSION < 6.46 ? () : (
43                         META_MERGE => {
44                                 resources => {
45                                 bugtracker => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Fuse',
46                                 repository => 'http://github.com/dpavlin/perl-fuse'
47                         }
48                 })
49         ),
50         'LIBS'                  => [''], # e.g., '-lm'
51         'DEFINE'                => $def, # e.g., '-DHAVE_SOMETHING'
52         # Insert -I. if you add *.h files later:
53         'INC'                   => $inc, # e.g., '-I/usr/include/other'
54         # Un-comment this if you add C files to link with later:
55         'OBJECT'                => "$obj Fuse.o -lpthread", # link all the C files too
56 );
57
58 sub MY::postamble {
59         return <<'MAKE_MORE';
60
61 cpan:
62         make clean
63         rm -f Fuse-*.tar.gz
64         perl Makefile.PL
65         make dist
66         make disttest
67         @echo
68         @echo -n "Upload" Fuse-*.tar.gz "to CPAN? [y/N]:"
69         @read upload && test "$$upload" == "y" && cpan-upload -verbose Fuse-*.tar.gz
70
71
72
73 sf:
74         svn2cvs.pl file:///home/dpavlin/private/svn/fuse/perl-llin :ext:dpavlin@fuse.cvs.sourceforge.net:/cvsroot/fuse perl
75
76 MAKE_MORE
77 };