This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
reorder 'struct block' fields.
[perl5.git] / cpan / libnet / Makefile.PL
index 905a283..64d6959 100644 (file)
+#!perl
+#===============================================================================
+#
+# Makefile.PL
+#
+# DESCRIPTION
+#   Makefile creation script.
+#
+# COPYRIGHT
+#   Copyright (C) 2014, 2015 Steve Hay.  All rights reserved.
+#
+# LICENCE
+#   This script is free software; you can redistribute it and/or modify it under
+#   the same terms as Perl itself, i.e. under the terms of either the GNU
+#   General Public License or the Artistic License, as specified in the LICENCE
+#   file.
+#
+#===============================================================================
+
+use 5.008001;
+
 use strict;
-use ExtUtils::MakeMaker;
-
-WriteMakefile (
-    NAME            => 'Net',
-    DISTNAME        => 'libnet',
-    VERSION         => '1.23', # finds $VERSION
-    AUTHOR          => 'Graham Barr <gbarr@pobox.com>',
-    ABSTRACT        => 'Collection of Network protocol modules',
-);
+use warnings;
+
+use ExtUtils::MakeMaker 6.64;
+use ExtUtils::MakeMaker qw(WriteMakefile);
+
+## no critic (Subroutines::ProhibitSubroutinePrototypes)
+
+sub running_under_cpan();
+
+#===============================================================================
+# INITIALIZATION
+#===============================================================================
+
+our($CfgFile, $CfgPath);
+
+BEGIN {
+    $CfgFile = 'libnet.cfg';
+    $CfgPath = "Net/$CfgFile";
+}
+
+#===============================================================================
+# MAIN PROGRAM
+#===============================================================================
+
+MAIN: {
+    my %prereq_pms = ();
+    $prereq_pms{'Convert::EBCDIC'} = '0.06' if $^O eq 'os390';
+
+    my $xt = 'n';
+    if (not running_under_cpan() and not $ENV{PERL_CORE}) {
+        $xt = prompt("Should I do external tests?\n" .
+                     "These tests will fail if there is no internet" .
+                     " connection or if a firewall\n" .
+                     "blocks or modifies some traffic.\n" .
+                     "[y/N]", 'n');
+    }
+
+    my $tests = 't/*.t';
+    $tests .= ' t/external/*.t' if $xt =~ m/^y/io;
+
+    WriteMakefile(
+        NAME     => 'Net',
+        DISTNAME => 'libnet',
+        ABSTRACT => 'Collection of network protocol modules',
+        AUTHOR   => 'Graham Barr <gbarr@pobox.com>, Steve Hay <shay@cpan.org>',
+        LICENSE  => 'perl_5',
+        VERSION  => '3.08',
+
+        META_MERGE => {
+            'meta-spec' => {
+                version => 2
+            },
+
+            resources => {
+                repository => {
+                    type => 'git',
+                    url  => 'https://github.com/steve-m-hay/perl-libnet.git'
+                }
+            },
+
+            optional_features => {
+                APOP => {
+                    description => 'APOP support',
+                    prereqs => {
+                        runtime => {
+                            requires => {
+                                'Digest::MD5' => '0'
+                            }
+                        }
+                    }
+                },
+
+                AUTH => {
+                    description => 'AUTH support',
+                    prereqs => {
+                        runtime => {
+                            requires => {
+                                'Authen::SASL' => '0',
+                                'MIME::Base64' => '0'
+                            }
+                        }
+                    }
+                },
+
+                SSL => {
+                    description => 'SSL support',
+                    prereqs => {
+                        runtime => {
+                            requires => {
+                                'IO::Socket::SSL' => '2.007'
+                            }
+                        }
+                    }
+                },
+
+                IPv6 => {
+                    description => 'IPv6 support',
+                    prereqs => {
+                        runtime => {
+                            requires => {
+                                'IO::Socket::IP' => '0.20'
+                            # or IO::Socket::INET6 2.62
+                            }
+                        }
+                    }
+                },
+
+                changestest => {
+                    description => 'Changes testing',
+                    prereqs => {
+                        test => {
+                            requires => {
+                                'Test::CPAN::Changes' => '0'
+                            }
+                        }
+                    }
+                },
+
+                critictest => {
+                    description => 'Perl::Critic testing',
+                    prereqs => {
+                        test => {
+                            requires => {
+                                'Test::Perl::Critic' => '0'
+                            }
+                        }
+                    }
+                },
+
+                podtest => {
+                    description => 'POD testing',
+                    prereqs => {
+                        test => {
+                            requires => {
+                                'Test::Pod' => '1.00'
+                            }
+                        }
+                    }
+                },
+
+                podcoveragetest => {
+                    description => 'POD coverage testing',
+                    prereqs => {
+                        test => {
+                            requires => {
+                                'Test::Pod::Coverage' => '0.08'
+                            }
+                        }
+                    }
+                }
+            }
+        },
+
+        MIN_PERL_VERSION => '5.008001',
+
+        CONFIGURE_REQUIRES => {
+            'ExtUtils::MakeMaker' => '6.64',
+            'Getopt::Std'         => '0',
+            'IO::File'            => '0',
+            'perl'                => '5.008001',
+            'strict'              => '0',
+            'vars'                => '0',
+            'warnings'            => '0'
+        },
+
+        TEST_REQUIRES => {
+            'Config' => '0',
+            'Cwd'    => '0'
+        },
+
+        PREREQ_PM => {
+            %prereq_pms,
+            'Carp'           => '0',
+            'Errno'          => '0',
+            'Exporter'       => '0',
+            'Fcntl'          => '0',
+            'File::Basename' => '0',
+            'FileHandle'     => '0',
+            'IO::Select'     => '0',
+            'IO::Socket'     => '1.05',
+            'POSIX'          => '0',
+            'Socket'         => '2.016',
+            'Symbol'         => '0',
+            'Time::Local'    => '0',
+            'constant'       => '0',
+            'strict'         => '0',
+            'utf8'           => '0',
+            'vars'           => '0'
+        },
+
+        INSTALLDIRS => ($] < 5.011 ? 'perl' : 'site'),
+
+        realclean => {
+            FILES => $CfgFile
+        },
+
+        test => {
+            TESTS => $tests
+        },
+
+        dist => {
+            PREOP   => 'find $(DISTVNAME) -type d -print|xargs chmod 0755 && ' .
+                       'find $(DISTVNAME) -type f -print|xargs chmod 0644',
+            TO_UNIX => 'find $(DISTVNAME) -type f -print|xargs dos2unix'
+        }
+    );
+}
+
+#===============================================================================
+# MAKEMAKER OVERRIDES
+#===============================================================================
+
+sub MY::post_initialize {
+    my $self = shift;
+
+    return '' if $self->{PERL_CORE};
+
+    if (not -f $CfgFile) {
+        my @args = qw(Configure);
+        push @args, '-d' if $ENV{PERL5_CPAN_IS_RUNNING}     ||
+                            $ENV{PERL5_CPANPLUS_IS_RUNNING} ||
+                            $ENV{PERL5_CPANM_IS_RUNNING};
+        system(($^O eq 'VMS' ? 'mcr ': ()), $^X, @args)
+    }
+
+    $self->{PM}{$CfgFile} = $self->catfile('$(INST_LIBDIR)',$CfgPath);
+
+    return '';
+}
+
+#===============================================================================
+# SUBROUTINES
+#===============================================================================
+
+sub running_under_cpan() {
+    return $ENV{PERL5_CPAN_IS_RUNNING}     || # cpan
+           $ENV{PERL5_CPANPLUS_IS_RUNNING} || # cpanp
+           $ENV{PERL5_CPANM_IS_RUNNING};      # cpanm
+}
+
+#===============================================================================