]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
build: fix generation of manpages for programs not built by default
authorStefano Lattarini <stefano.lattarini@gmail.com>
Fri, 31 Aug 2012 23:46:41 +0000 (01:46 +0200)
committerJim Meyering <meyering@redhat.com>
Sat, 1 Sep 2012 19:25:13 +0000 (21:25 +0200)
* src/local.mk (dist-hook): Don't use this to ensure all the
programs, even the ones disabled by default or by the user, are
built (doing so is required to ensure the distributed manpages
are properly built).  This would build those programs too late
anyway, causing errors like:

    $ make dist
    make  dist-xz am__post_remove_distdir='@:'
    make[1]: Entering directory `~/src/coreutils'
      GEN      man/arch.1
    help2man: can't get '--help' info from man/arch.td/arch
    make[1]: *** [man/arch.1] Error 127
    make[1]: Leaving directory `~/src/coreutils'
    make: *** [dist] Error 2

Instead, ...
* man/local.mk (extra_man_x, extra_man_1): define these ...
($(extra_man_1)): ... and make this depend on $(all_programs).
(EXTRA_DIST): Adjust.
Adjust some comments as well.

man/local.mk
src/local.mk

index d42c98215045b1a06cf169feacb165c71f9b4a4d..80519afceea057b1b1980700dcb3b1567f452b31 100644 (file)
@@ -25,13 +25,18 @@ MAINTAINERCLEANFILES += $(dist_man1_MANS)
 
 # The "$(VAR:%=dir/%.x)" idiom is not portable according to POSIX, but in
 # practice it works with several make implementation (GNU, BSD, CCS make
-# from Solaris 10, Sun distributed make).  In addition, since only
-# maintainers are expected to build release tarballs (and they should
-# use GNU make when doing so), it's not big deal if this won't work with
-# some dumber make implementation.
-EXTRA_DIST += \
-  $(NO_INSTALL_PROGS_DEFAULT:%=man/%.x) \
-  $(NO_INSTALL_PROGS_DEFAULT:%=man/%.1)
+# from Solaris 10, Sun distributed make).
+extra_man_x = $(NO_INSTALL_PROGS_DEFAULT:%=man/%.x)
+extra_man_1 = $(NO_INSTALL_PROGS_DEFAULT:%=man/%.1)
+
+EXTRA_DIST += $(extra_man_1) $(extra_man_x)
+
+# This is required because we have subtle inter-directory dependencies:
+# in order to generate all man pages, even those for which we don't
+# install a binary, require that all programs be built at distribution
+# time.  We can't use 'dist-hook' for this, since it would run too late:
+# the manpages must be generated before the distdir is created and filled.
+$(extra_man_1): $(all_programs)
 
 # Depend on this to get version number changes.
 mandep = .version
index 45a6268e2e0bdb29a374185ca72958bdfb00a065..24462009ff3e44b5b84dc753f0302979671f6193 100644 (file)
@@ -495,11 +495,6 @@ all_programs.list:
          | sed /libstdbuf/d \
          | $(ASSORT) -u
 
-# This is required because we have broken inter-directory dependencies:
-# in order to generate all man pages, even those for which we don't
-# install a binary, require that all programs be built at distribution time.
-dist-hook: $(all_programs)
-
 pm = progs-makefile
 pr = progs-readme
 # Ensure that the list of programs in README matches the list