1 |
use ExtUtils::MakeMaker; |
use ExtUtils::MakeMaker; |
2 |
# See lib/ExtUtils/MakeMaker.pm for details of how to influence |
# See lib/ExtUtils/MakeMaker.pm for details of how to influence |
3 |
# the contents of the Makefile that is written. |
# 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( |
WriteMakefile( |
36 |
'NAME' => 'Fuse', |
'NAME' => 'Fuse', |
37 |
'VERSION_FROM' => 'Fuse.pm', # finds $VERSION |
'VERSION_FROM' => 'Fuse.pm', # finds $VERSION |
38 |
'PREREQ_PM' => {}, # e.g., Module::Name => 1.1 |
'PREREQ_PM' => {}, # e.g., Module::Name => 1.1 |
39 |
($] >= 5.005 ? ## Add these new keywords supported since 5.005 |
($] >= 5.005 ? ## Add these new keywords supported since 5.005 |
40 |
(ABSTRACT_FROM => 'Fuse.pm', # retrieve abstract from module |
(ABSTRACT_FROM => 'Fuse.pm', # retrieve abstract from module |
41 |
AUTHOR => 'Mark Glines <mark@glines.org>') : ()), |
AUTHOR => 'Mark Glines <mark@glines.org>') : ()), |
42 |
'LIBS' => [''], # e.g., '-lm' |
'LIBS' => [''], # e.g., '-lm' |
43 |
'DEFINE' => '-g -ggdb', # e.g., '-DHAVE_SOMETHING' |
'DEFINE' => $def, # e.g., '-DHAVE_SOMETHING' |
44 |
# Insert -I. if you add *.h files later: |
# Insert -I. if you add *.h files later: |
45 |
'INC' => '-I../include', # e.g., '-I/usr/include/other' |
'INC' => $inc, # e.g., '-I/usr/include/other' |
46 |
# Un-comment this if you add C files to link with later: |
# Un-comment this if you add C files to link with later: |
47 |
'OBJECT' => 'Fuse.o ../lib/.libs/libfuse.a -lpthread', # link all the C files too |
'OBJECT' => "$obj Fuse.o -lpthread", # link all the C files too |
48 |
); |
); |
49 |
|
|
50 |
|
sub MY::postamble { |
51 |
|
return <<'MAKE_MORE'; |
52 |
|
|
53 |
|
cpan: |
54 |
|
make clean |
55 |
|
rm -f Fuse-*.tar.gz |
56 |
|
perl Makefile.PL |
57 |
|
make dist |
58 |
|
make disttest |
59 |
|
@echo |
60 |
|
@echo -n "Upload" Fuse-*.tar.gz "to CPAN? [y/N]:" |
61 |
|
@read upload && test "$$upload" == "y" && cpan-upload -verbose Fuse-*.tar.gz |
62 |
|
|
63 |
|
|
64 |
|
|
65 |
|
sf: |
66 |
|
svn2cvs.pl file:///home/dpavlin/private/svn/fuse/perl-llin :ext:dpavlin@fuse.cvs.sourceforge.net:/cvsroot/fuse perl |
67 |
|
|
68 |
|
MAKE_MORE |
69 |
|
}; |