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