]> git.donarmstrong.com Git - lilypond.git/blobdiff - stepmake/stepmake/help2man-rules.make
the distributed help2man is outdated and sucky. Use the Debian version instead.
[lilypond.git] / stepmake / stepmake / help2man-rules.make
index 0f4559ae30091295e042a86327806d3fc6d09a5d..22aa9c8eab0376f902b08456165336257b2b97b3 100644 (file)
@@ -1,37 +1,23 @@
-ifneq ($(outdir),./out)
-$(outdir)/%.1: out/%.1
-       cp $< $@
+# The distributed help2man sucks; use the Debian version instead.
+ifeq ($(PYTHON),$(TARGET_PYTHON))
+HELP2MAN_COMMAND = help2man $< > $@
+else
+HELP2MAN_COMMAND = help2man "env $$(basename $$(head -1 $<)) $<" > $@
 endif
 
-# We must invoke the generated $(outdir)/help2man script instead of
-# the help2man.pl source, which means that the buildscripts directory
-# must be built first.
-#
-# From the perlrun man-page:
-#
-#      If the #! line does not contain the word "perl", the
-#       program named after the #! is executed instead of the Perl
-#       interpreter.  This is slightly bizarre, but it helps
-#
-# Indeed it is.  Perl sucks.
-#
-# Two screenfulls explaining that the otherwise standard #! is broken
-# for perl, and arguing that this broken magic is better in some
-# cases.  Four more explaining what a line comment is, and that it may
-# be parsed, same here.
-
-HELP2MAN_COMMAND = $(PERL) $(builddir)/buildscripts/$(outbase)/help2man $< > $@
-
-ifeq ($(cross),))
-$(outdir)/%.1: $(outdir)/%
+ifeq ($(strip $(CROSS)),no)
+$(outdir)/%.1: $(outdir)/% $(buildscript-dir)/help2man
        $(HELP2MAN_COMMAND)
 else
-# When cross building, some manpages will not build because the executable
-# does not run.  We don not want to disable building manpages, because
-# the cross build process may generate them using a native executable.
-$(outdir)/%.1: $(outdir)/%
-       $(HELP2MAN_COMMAND) || \
-       (echo ""; echo "Apparently the man pages failed to build. This is";\
-        echo "no problem, since they don't contain any information anyway.";\
-        echo "Please run make again, and be prepared for NO manual pages.")
+# When cross building, some manpages will not build because the
+# executable does not run.  We assume the manpages to be generated
+# during a previous compile for the build host, with config=for-build,
+# in the directory $(outdir)-for-build.
+$(outdir)/%.1: $(outdir:%=%-for-build)/%.1
+       cp $< $@
+endif
+
+ifneq ($(outdir),./out)
+$(outdir)/%.1: out/%.1
+       cp $< $@
 endif