|
Packit |
fc16e3 |
use 5.006;
|
|
Packit |
fc16e3 |
use strict;
|
|
Packit |
fc16e3 |
use warnings;
|
|
Packit |
fc16e3 |
use ExtUtils::MakeMaker;
|
|
Packit |
fc16e3 |
use Config;
|
|
Packit |
fc16e3 |
use Getopt::Long qw(GetOptions :config pass_through);
|
|
Packit |
fc16e3 |
use Pod::Usage qw(pod2usage);
|
|
Packit |
fc16e3 |
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
|
|
Packit |
fc16e3 |
# the contents of the Makefile that is written.
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
#added by Lincoln Baxter to fix cflags (for long long on HPUX)
|
|
Packit |
fc16e3 |
#guidence from DBD-Oracle module
|
|
Packit |
fc16e3 |
{
|
|
Packit |
fc16e3 |
package MY; # SUPER needs package context, $self is not sufficient
|
|
Packit |
fc16e3 |
use strict;
|
|
Packit |
fc16e3 |
use Config;
|
|
Packit |
fc16e3 |
my $os = $^O;
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
sub const_cccmd {
|
|
Packit |
fc16e3 |
my ($self) = shift;
|
|
Packit |
fc16e3 |
local($_) = $self->SUPER::const_cccmd(@_);
|
|
Packit |
fc16e3 |
# are we using the non-bundled hpux compiler?
|
|
Packit |
fc16e3 |
if ($os eq "hpux" and $Config::Config{ccflags} =~ /-Aa\b/) {
|
|
Packit |
fc16e3 |
print "Changing -Aa to -Ae for HP-UX in ccmd to allow for long long.\n"
|
|
Packit |
fc16e3 |
if s/-Aa\b/-Ae/g; # allow "long long" in UUID.h
|
|
Packit |
fc16e3 |
}
|
|
Packit |
fc16e3 |
$_;
|
|
Packit |
fc16e3 |
}
|
|
Packit |
fc16e3 |
sub cflags
|
|
Packit |
fc16e3 |
{
|
|
Packit |
fc16e3 |
my ($self) = shift;
|
|
Packit |
fc16e3 |
local($_) = $self->SUPER::cflags(@_);
|
|
Packit |
fc16e3 |
# are we using the non-bundled hpux compiler?
|
|
Packit |
fc16e3 |
if ($os eq "hpux" and $Config::Config{ccflags} =~ /-Aa\b/) {
|
|
Packit |
fc16e3 |
print "Changing -Aa to -Ae for HP-UX in cflags.\n"
|
|
Packit |
fc16e3 |
if s/-Aa\b/-Ae/g; # allow "long long" in UUID.h
|
|
Packit |
fc16e3 |
}
|
|
Packit |
fc16e3 |
$_;
|
|
Packit |
fc16e3 |
}
|
|
Packit |
fc16e3 |
};
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
WriteMakefile(
|
|
Packit |
fc16e3 |
($] >= 5.005 ## Add these new keywords supported since 5.005
|
|
Packit |
fc16e3 |
? (ABSTRACT_FROM => 'UUID.pm', # retrieve abstract from module
|
|
Packit |
fc16e3 |
AUTHOR => 'Ricardo Signes <rjbs[at]cpan.org>')
|
|
Packit |
fc16e3 |
: ()),
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
NAME => 'Data::UUID',
|
|
Packit |
fc16e3 |
VERSION_FROM => 'UUID.pm', # finds $VERSION
|
|
Packit |
fc16e3 |
PREREQ_PM => { 'Digest::MD5' => '0' }, # e.g., Module::Name => 1.1
|
|
Packit |
fc16e3 |
LICENSE => 'bsd',
|
|
Packit |
fc16e3 |
LIBS => [], # e.g., '-lm'
|
|
Packit |
fc16e3 |
#works without -lsocket
|
|
Packit |
fc16e3 |
DEFINE => '', # e.g., '-DHAVE_SOMETHING'
|
|
Packit |
fc16e3 |
# Insert -I. if you add *.h files later:
|
|
Packit |
fc16e3 |
INC => '', # e.g., '-I/usr/include/other'
|
|
Packit |
fc16e3 |
# Un-comment this if you add C files to link with later:
|
|
Packit |
fc16e3 |
OBJECT => '$(O_FILES)', # link all the C files too
|
|
Packit |
fc16e3 |
META_MERGE => {
|
|
Packit |
fc16e3 |
resources => {
|
|
Packit |
fc16e3 |
bugtracker => 'https://github.com/rjbs/Data-UUID/issues',
|
|
Packit |
fc16e3 |
repository => 'https://github.com/rjbs/Data-UUID',
|
|
Packit |
fc16e3 |
},
|
|
Packit |
fc16e3 |
},
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
CONFIGURE => sub {
|
|
Packit |
fc16e3 |
my %opt;
|
|
Packit |
fc16e3 |
GetOptions(\%opt, 's|state-storage-directory:s', 'd|default-umask:s',
|
|
Packit |
fc16e3 |
'help|?', 'man') or pod2usage(2);
|
|
Packit |
fc16e3 |
pod2usage(1) if $opt{help};
|
|
Packit |
fc16e3 |
pod2usage(-verbose => 2) if $opt{man};
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
print "Configured options (run perl Makefile.PL --help for how to change this):\n";
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
my $d;
|
|
Packit |
fc16e3 |
if ($^O eq 'MSWin32' and -d "c:/tmp/") {
|
|
Packit |
fc16e3 |
$d="c:/tmp";
|
|
Packit |
fc16e3 |
} else {
|
|
Packit |
fc16e3 |
$d=eval { require File::Spec; File::Spec->tmpdir; } || '/var/tmp';
|
|
Packit |
fc16e3 |
}
|
|
Packit |
fc16e3 |
$d = $opt{s} || $d;
|
|
Packit |
fc16e3 |
print "\tUUID state storage: $d\n";
|
|
Packit |
fc16e3 |
$d =~ s/\\/\\\\/g if $^O eq 'MSWin32';
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
my $m = '0007';
|
|
Packit |
fc16e3 |
unless ($^O eq 'MSWin32') {
|
|
Packit |
fc16e3 |
$m = $opt{d} || $m;
|
|
Packit |
fc16e3 |
print "\tdefault umask: $m\n";
|
|
Packit |
fc16e3 |
}
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
chmod(0666, sprintf("%s/%s", $d, ".UUID_NODEID"));
|
|
Packit |
fc16e3 |
chmod(0666, sprintf("%s/%s", $d, ".UUID_STATE"));
|
|
Packit |
fc16e3 |
return {
|
|
Packit |
fc16e3 |
DEFINE => qq(-D_STDIR=\\"$d\\")
|
|
Packit |
fc16e3 |
. qq( -D__$Config{osname}__)
|
|
Packit |
fc16e3 |
. qq( -D_DEFAULT_UMASK=$m)
|
|
Packit |
fc16e3 |
};
|
|
Packit |
fc16e3 |
}
|
|
Packit |
fc16e3 |
);
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
__END__
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=head1 NAME
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
Makefile.PL - configure Makefile for Data::UUID
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=head1 SYNOPSIS
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
perl Makefile.PL [options] [EU::MM options]
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
perl Makefile.PL -s=/var/local/lib/data-uuid -d=0007
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
Options:
|
|
Packit |
fc16e3 |
--state-storage-directory directory for storing library state information
|
|
Packit |
fc16e3 |
--default-umask umask for files in the state storage directory
|
|
Packit |
fc16e3 |
--help brief help message
|
|
Packit |
fc16e3 |
--man full documentation
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
Options can be abbreviated, see L<Getopt::Long/"Case and abbreviations">.
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=head1 OPTIONS
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=over
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=item --state-storage-directory
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
Optional. Takes a string that is interpreted as directory for storing library
|
|
Packit |
fc16e3 |
state information. Default is c:/tmp/ on Windows if it already exists, or the
|
|
Packit |
fc16e3 |
operating system's temporary directory (see tmpdir in L<File::Spec/"METHODS">),
|
|
Packit |
fc16e3 |
or /var/tmp as fallback.
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=item --default-umask
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
Optional. Takes a string that is interpreted as umask for the files in the state
|
|
Packit |
fc16e3 |
storage directory. Default is 0007. This is ignored on Windows.
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=item --help
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
Print a brief help message and exits.
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=item --man
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
Prints the manual page and exits.
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=back
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
=head1 DESCRIPTION
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
B<Makefile.PL> writes the Makefile for the Data::UUID library. It is configured
|
|
Packit |
fc16e3 |
with the options L</"--state-storage-directory"> and L</"--default-umask">.
|
|
Packit |
fc16e3 |
Unless given, default values are used. In any case the values are printed for
|
|
Packit |
fc16e3 |
confirmation.
|
|
Packit |
fc16e3 |
|
|
Packit |
fc16e3 |
Additionally, the usual EU::MM options are processed, see
|
|
Packit |
fc16e3 |
L<ExtUtils::MakeMaker/"Using Attributes and Parameters">.
|