Makefile.PL | 22 ++++++++++++++++------
diff --git a/Makefile.PL b/Makefile.PL
index a9b15cabe845ec649dc2d60325d5d549d711570f..ccf4bbb8e0c0cfd68b9b4a5e7140891443eed588 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -3,14 +3,16 @@ # Copyright (C) 2013-2015 all contributors
# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
use strict;
use ExtUtils::MakeMaker;
+my @EXE_FILES = split("\n", `git ls-files 'public-inbox*' 2>/dev/null`);
+my $PM_FILES = `git ls-files lib '*.pm' 2>/dev/null`;
+$PM_FILES =~ tr/\n/ /;
+
WriteMakefile(
NAME => 'public-inbox',
VERSION => '0.0.0',
AUTHOR => 'Eric Wong ',
ABSTRACT => 'public-inbox server infrastructure',
- EXE_FILES => [qw/public-inbox-mda public-inbox.cgi
- public-inbox-learn public-inbox-init
- public-inbox-index/],
+ EXE_FILES => \@EXE_FILES,
PREREQ_PM => {
# note: we use ssoma(1) and spamc(1), NOT the Perl modules
# We also depend on git through ssoma.
@@ -32,11 +34,19 @@ },
);
sub MY::postamble {
- <<'EOF';
+ </dev/null || echo 2) + 1)))
+my_syntax := \$(addsuffix .syntax, $PM_FILES \$(EXE_FILES))
+
+N := \$(shell echo \$\$(( \$\$(nproc 2>/dev/null || echo 2) + 1)))
+
+%.syntax ::
+ @\$(PERL) -I lib -c \$(subst .syntax,,\$@)
+
+syntax:: \$(my_syntax)
+
check:: pure_all
- prove -lv -j$(N)
+ prove -lv -j\$(N)
EOF
}