X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=stepmake%2Fstepmake%2Fhelp2man-rules.make;h=22aa9c8eab0376f902b08456165336257b2b97b3;hb=d59abb4445154df6bdc6105a0f162d6ee827ef01;hp=0f4559ae30091295e042a86327806d3fc6d09a5d;hpb=6d641c68de8b3ea29f95ee0c3ea5aaeb3ca7a098;p=lilypond.git diff --git a/stepmake/stepmake/help2man-rules.make b/stepmake/stepmake/help2man-rules.make index 0f4559ae30..22aa9c8eab 100644 --- a/stepmake/stepmake/help2man-rules.make +++ b/stepmake/stepmake/help2man-rules.make @@ -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