.gitignore | 1 + Documentation/include.mk | 3 +++ Makefile.PL | 8 +++++++- diff --git a/.gitignore b/.gitignore index 7f4142ba7e03f5aad0a30dfb7563af83bbfa8e76..f7e4c5953e68b7f36866cb3e96f1a3f926070ceb 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ *.html *.gz .*.cols .*.check +.*.lexgrog /NEWS.html /NEWS.atom /NEWS diff --git a/Documentation/include.mk b/Documentation/include.mk index df6c17e03ede598caa872c58f80be9badbc170a9..79bf460d22cfbf3f14bc4768e5eeb06d895a1ef3 100644 --- a/Documentation/include.mk +++ b/Documentation/include.mk @@ -6,6 +6,7 @@ RSYNC = rsync RSYNC_DEST = public-inbox.org:/srv/public-inbox/ AWK = awk MAN = man +LEXGROG = lexgrog # this is "xml" on FreeBSD and maybe some other distros: XMLSTARLET = xmlstarlet @@ -55,6 +56,8 @@ check_man = $(AWK) '{gsub(/\b./,"")}length>80{print;err=1}END{exit(err)}'\ >&2 && >$@ check-man :: $(check_80) + +check-lexgrog :: $(check_lexgrog) all :: $(docs) diff --git a/Makefile.PL b/Makefile.PL index 9d0a361a46d881e4f556e8ba7c927e599e56ae7a..b2f3393daa83d0fe6c45b2169d846b9fb16fac4f 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -65,8 +65,12 @@ $t->{"Documentation/$m.html : $txt"} = [ "\$(txt2pre) <$txt" ]; $t->{".$m.cols : $m.$i"} = [ "\@echo CHECK80 $m.$i;". "COLUMNS=80 \$(MAN) ./$m.$i | \$(check_man)" ]; + $t->{".$m.lexgrog: $m.$i"} = [ + "\@echo LEXGROG $m.$i;" . + "\$(LEXGROG) ./$m.$i >\$\@+ && mv \$\@+ \$@" ]; } push @{$v->{check_80}}, map { ".$_.cols" } @$ary; + push @{$v->{check_lexgrog}}, map { ".$_.lexgrog" } @$ary; my $manuals = $v->{"man$i"} = [ map { "$_.$i" } @$ary ]; push @{$v->{manuals}}, @$manuals; push @{$v->{mantxt}}, map { "Documentation/$_.txt" } @$ary; @@ -121,6 +125,8 @@ $mod =~ s/\.\w+\z//; "lib/PublicInbox/$_" => "blib/man3/PublicInbox::$mod.\$(MAN3EXT)" } qw(Git.pm Import.pm WWW.pod SaPlugin/ListMirror.pod); my $warn_no_pod = @no_pod ? "\n\t\@echo W: missing .pod: @no_pod\n" : ''; +chomp(my $lexgrog = `which lexgrog 2>/dev/null`); +my $check_lexgrog = $lexgrog ? 'check-lexgrog' : ''; WriteMakefile( NAME => 'PublicInbox', # n.b. camel-case is not our choice @@ -184,7 +190,7 @@ $VARS -include Documentation/include.mk $TGTS -check-man ::$warn_no_pod +check-man :: $check_lexgrog$warn_no_pod # syntax checks are currently GNU make only: %.syntax :: %