a bit more eye-friendly formatting
[acme-study-perl.git] / Makefile.PL
blobe16548a814e4d4c1386d0288fc9707604d369cec
1 use 5.006002;
2 use strict;
3 use warnings;
4 use ExtUtils::MakeMaker;
5 $ExtUtils::MakeMaker::VERSION =~ s/_//g;
6 my @sign = (MM->can("signature_target") ? (SIGN => 1) : ());
7 my $version_diff = 0; # we'll have to die if this becomes true
8 my $version_from = 'lib/Acme/Study/Perl.pm';
9 my $version;
11     open my $fh, "<", $version_from or die "Could not open $version_from: $!";
12     my @version = grep /VERSION\s*=\s*qv/, <$fh>;
13     our $VERSION;
14     eval $version[0];
15     $version = $VERSION;
17 if ($ARGV[0] && $ARGV[0] eq "--setversion") {
18     die "Your perl is a bit dated[$]].\nDo not make a release with it\n" if $] < 5.008;
19     warn "Your MakeMaker is a bit dated[$ExtUtils::MakeMaker::VERSION].\nYou should get a new one\n"
20         if $ExtUtils::MakeMaker::VERSION < 6.4502;
21     eval {  require $version_from; }; die $@ if $@;
22     my $makefile = "Makefile";
23     unless (-f $makefile) {
24         $makefile = "Makefile.old";
25     }
26     unless (-f $makefile) {
27         die "no Makefile and no Makefile.old found";
28     }
29     open my $fh, "make the-release-name|" or die "Could not fork: $!";
30     local $/;
31     my ($have_version) = <$fh> =~ /^version\s+([\d\._]+)/m;
32     close $fh or die "Could not close: $!";
33     my ($namespace) = $version_from;
34     $namespace =~ s|^lib/(.+)\.pm$|$1|;
35     $namespace =~ s|/|::|g;
36     eval qq{ if (\$$namespace\::VERSION != \$have_version) {
37         warn "Not equal: CPAN::Testers::ParseReport::VERSION[\$$namespace\::VERSION] Makefile version[\$have_version]";
38         \$version_diff = 1;
39     }};
43 WriteMakefile
44     (
45      NAME                => 'Acme::Study::Perl',
46      AUTHOR              => 'Andreas König <andreas.koenig.7os6VVqR@franz.ak.mind.de>',
47      VERSION_FROM        => 'lib/Acme/Study/Perl.pm',
48      ABSTRACT_FROM       => 'lib/Acme/Study/Perl.pm',
49      PL_FILES            => {},
50      PREREQ_PM => {
51                    'Data::Dumper' => 0,
52                    'Test::More' => 0,
53                    version => "0.72", # because I decided in favor of 0.0.x numbering
54                   },
55      dist => {
56               DIST_DEFAULT => join(" ", # note: order matters!
57                                    "Makefile",
58                                    "META.yml",
59                                    "setversion",
60                                    "all",
61                                    "tardist",
62                                   ),
63               COMPRESS => 'gzip -9',
64              },
65      ($ExtUtils::MakeMaker::VERSION >= 6.4502 ?
66       (META_ADD => {
67                     # write: git push git+ssh://repo.or.cz/srv/git/acme-study-perl.git master
68                     repository => "git://repo.or.cz/acme-study-perl.git",
69                    }) : ()),
70      @sign,
71     );
73 package MY;
74 sub postamble {
75   my @m;
76   push @m, q{
77 Makefile:
79 META.yml: metafile
80         $(CP) $(DISTVNAME)/META.yml  ./META.yml
82 setversion:
83         $(PERL) Makefile.PL --setversion
85 the-release-name :
86         $(NOECHO) $(ECHO) 'version ' $(VERSION)
87         $(NOECHO) $(ECHO) 'release-name ' $(DISTVNAME).tar$(SUFFIX)
89 release ::
90         /usr/bin/perl -I../CPAN/GIT/trunk/release-lib -S release $(DISTVNAME).tar$(SUFFIX)
91         rm -rf $(DISTVNAME)
93 sign:
94         cpansign -s
96   join "", @m;
99 sub dist_test {
100   return q{
101 # if we depend on $(DISTVNAME).tar$(SUFFIX), then the rest of the
102 # Makefile breaks our intent to NOT remake dist
103 disttest :
104         rm -rf $(DISTVNAME)
105         tar xvzf $(DISTVNAME).tar$(SUFFIX)
106         cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL
107         cd $(DISTVNAME) && $(MAKE) $(PASTHRU)
108         cd $(DISTVNAME) && $(MAKE) test $(PASTHRU)
110 distdir ::
111         touch $(DISTVNAME)/SIGNATURE && $(CP) $(DISTVNAME)/SIGNATURE ./SIGNATURE
112         $(CP) $(DISTVNAME)/META.yml  ./META.yml
113         $(CP) $(DISTVNAME)/MANIFEST  ./MANIFEST
118 sub distdir {
119   my $self = shift;
120   my $out = $self->SUPER::distdir;
121   $out =~ s/distdir :/distdir ::/g;
122   return $out;
125 # dist_dir was the name in very old MakeMaker as of 5.005_04
126 sub dist_dir {
127   my $self = shift;
128   my $out = $self->SUPER::dist_dir;
129   $out =~ s/distdir :/distdir ::/g;
130   return $out;