Blame Makefile.PL

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