]> Sergey Matveev's repositories - public-inbox.git/blobdiff - Makefile.PL
build: do not manify DS and Syscall pods
[public-inbox.git] / Makefile.PL
index a47e17bc4ad9157460f1a089c823c40d5fbffac4..3bb00725a4d8672fbc0ec1227284e63d25760f4d 100644 (file)
@@ -3,9 +3,19 @@
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 use strict;
 use ExtUtils::MakeMaker;
-my @EXE_FILES = split("\n", `git ls-files 'script/*' 2>/dev/null`);
-my $PM_FILES = `git ls-files lib '*.pm' 2>/dev/null`;
-$PM_FILES =~ tr/\n/ /;
+open my $m, '<', 'MANIFEST' or die "open(MANIFEST): $!\n";
+chomp(my @manifest = (<$m>));
+my @EXE_FILES = grep(m!^script/!, @manifest);
+my $PM_FILES = join(' ', grep(m!^lib/.*\.pm$!, @manifest));
+
+# Don't waste user's disk space by installing some pods from
+# imported code or internal use only
+my %man3 = map {; # semi-colon tells Perl this is a BLOCK (and not EXPR)
+       my $base = $_;
+       my $mod = $base;
+       $mod =~ s/\.\w+\z//;
+       "lib/PublicInbox/$_" => "blib/man3/PublicInbox::$mod.3"
+} qw(Git.pm Import.pm WWW.pod);
 
 WriteMakefile(
        NAME => 'PublicInbox',
@@ -22,11 +32,15 @@ WriteMakefile(
                'Email::MIME::ContentType' => 0,
                'Email::Simple' => 0,
                'Encode::MIME::Header' => 0,
+
+               # TODO: these should really be made optional...
                'Plack' => 0,
                'URI::Escape' => 0,
+
                # We have more test dependencies, but do not force
-               # users to install them
+               # users to install them.  See INSTALL
        },
+       MAN3PODS => \%man3,
 );
 
 sub MY::postamble {
@@ -52,5 +66,8 @@ check-manifest :: MANIFEST
 check:: pure_all check-manifest
        \$(EATMYDATA) prove -lv -j\$(N)
 
+lib/PublicInbox/UserContent.pm :: contrib/css/216dark.css
+       @\$(PERL) -I lib \$@ \$<
+
 EOF
 }