@@ -73,6 +73,12 @@ if HAVE_TEGRA
TEGRA_SUBDIR = tegra
endif
+if BUILD_MANPAGES
+if HAVE_MANPAGES_STYLESHEET
+MAN_SUBDIR = man
+endif
+endif
+
SUBDIRS = \
. \
$(LIBKMS_SUBDIR) \
@@ -84,7 +90,7 @@ SUBDIRS = \
$(FREEDRENO_SUBDIR) \
$(TEGRA_SUBDIR) \
tests \
- man
+ $(MAN_SUBDIR)
libdrm_la_LTLIBRARIES = libdrm.la
libdrm_ladir = $(libdir)
@@ -29,6 +29,13 @@ AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([build-aux])
+# Require xorg-macros minimum of 1.12 for XORG_WITH_XSLTPROC
+m4_ifndef([XORG_MACROS_VERSION],
+ [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.12)
+XORG_WITH_XSLTPROC
+XORG_MANPAGE_SECTIONS
+
AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2])
# Enable quiet compiles on automake 1.11.
@@ -378,9 +385,8 @@ AM_CONDITIONAL(HAVE_LIBUDEV, [test "x$HAVE_LIBUDEV" = xyes])
# xsltproc for docbook manpages
AC_ARG_ENABLE([manpages],
- AS_HELP_STRING([--disable-manpages], [disable manpages @<:@default=enabled@:>@]),
+ AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]),
[MANS=$enableval], [MANS=auto])
-AC_PATH_PROG(XSLTPROC, xsltproc)
AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"])
# check for offline man-pages stylesheet
@@ -1,63 +1,67 @@
#
# This generates man-pages out of the Docbook XML files. Simply add your files
-# to the $MANPAGES array. If aliases are created, please add them to the
-# MANPAGES_ALIASES array so they get installed correctly.
+# to the relevant *man_PRE array. If aliases are created, please add them to the
+# *man_aliases_PRE array so they get installed correctly.
#
-MANPAGES = \
- drm.7 \
- drm-kms.7 \
- drm-memory.7 \
- drmAvailable.3 \
- drmHandleEvent.3 \
- drmModeGetResources.3
-MANPAGES_ALIASES = \
- drm-mm.7 \
- drm-gem.7 \
- drm-ttm.7
+libman_PRE = \
+ drmAvailable.xml \
+ drmHandleEvent.xml \
+ drmModeGetResources.xml
-XML_FILES = \
- $(patsubst %.1,%.xml,$(patsubst %.3,%.xml,$(patsubst %.5,%.xml,$(patsubst %.7,%.xml,$(MANPAGES)))))
+miscman_PRE = \
+ drm.xml \
+ drm-kms.xml \
+ drm-memory.xml
-EXTRA_DIST = $(XML_FILES)
-CLEANFILES = $(MANPAGES) $(MANPAGES_ALIASES) .man_fixup
-man_MANS =
+miscman_aliases_PRE = \
+ drm-mm.xml \
+ drm-gem.xml \
+ drm-ttm.xml
+
+libmandir = $(LIB_MAN_DIR)
+miscmandir = $(MISC_MAN_DIR)
+miscman_aliasesdir = $(MISC_MAN_DIR)
-if BUILD_MANPAGES
-if HAVE_MANPAGES_STYLESHEET
+libman_DATA = $(libman_PRE:.xml=.$(LIB_MAN_SUFFIX))
+miscman_DATA = $(miscman_PRE:.xml=.$(MISC_MAN_SUFFIX))
+miscman_aliases_DATA = $(miscman_aliases_PRE:.xml=.$(MISC_MAN_SUFFIX))
-man_MANS += $(MANPAGES) $(MANPAGES_ALIASES)
+XML_FILES = \
+ $(libman_PRE) \
+ $(miscman_PRE)
+
+MAN_FILES = \
+ $(libman_DATA) \
+ $(miscman_DATA) \
+ $(miscman_aliases_DATA)
+
+EXTRA_DIST = $(XML_FILES)
+CLEANFILES = $(MAN_FILES) .man_fixup
XSLTPROC_FLAGS = \
--stringparam man.authors.section.enabled 0 \
--stringparam man.copyright.section.enabled 0 \
--stringparam funcsynopsis.style ansi \
--stringparam man.output.quietly 1 \
- --nonet
+ --nonet \
+ $(MANPAGES_STYLESHEET)
XSLTPROC_PROCESS_MAN = \
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
- $(XSLTPROC) -o "$@" $(XSLTPROC_FLAGS) $(MANPAGES_STYLESHEET) "$<" && \
+ $(AM_V_GEN)$(XSLTPROC) -o "$@" $(XSLTPROC_FLAGS) "$<" && \
touch .man_fixup
-# Force .man_fixup if $(MANPAGES) are not built
-.man_fixup: | $(MANPAGES)
- @touch .man_fixup
+# Force .man_fixup if $(miscman_DATA) are not built
+.man_fixup: | $(miscman_DATA)
+ $(AM_V_GEN)touch .man_fixup
-$(MANPAGES_ALIASES): $(MANPAGES) .man_fixup
+$(miscman_aliases_DATA): $(miscman_DATA) .man_fixup
$(AM_V_GEN)if test -n "$@" ; then $(SED) -i -e 's/^\.so \([a-z_]\+\)\.\([0-9]\)$$/\.so man\2\/\1\.\2/' "$@" ; fi
-%.1: $(top_srcdir)/man/%.xml
- $(XSLTPROC_PROCESS_MAN)
+SUFFIXES = .$(LIB_MAN_SUFFIX) .$(MISC_MAN_SUFFIX) .xml
-%.3: $(top_srcdir)/man/%.xml
+.xml.$(LIB_MAN_SUFFIX):
$(XSLTPROC_PROCESS_MAN)
-%.5: $(top_srcdir)/man/%.xml
+.xml.$(MISC_MAN_SUFFIX):
$(XSLTPROC_PROCESS_MAN)
-
-%.7: $(top_srcdir)/man/%.xml
- $(XSLTPROC_PROCESS_MAN)
-
-endif # HAVE_MANPAGES_STYLESHEET
-endif # BUILD_MANPAGES
Remove GNU make specific constructs and take into consideration that Solaris man 7 is not the same as Linux man 7. This commit introduces a dependency of xorg-macros 1.12 (released 4+ years ago) which is used to handle the above man section discrepancies. Cc: Niveditha Rau <niveditha.rau@oracle.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> --- If people prefer I can split this patch into separate ones, but considering how much of a rework/rewrite of man/Makefile.am this turned up to be it might not be worth it. Niveditha, If you can grab the tarball [1] for your test it should handle most/all of the GNU make dependencies, as it's based on my for-solaris branch at https://github.com/evelikov/libdrm Thanks, Emil [1] http://people.freedesktop.org/~evelikov/for-solaris/libdrm-2.4.60.tar.gz --- Makefile.am | 8 +++++- configure.ac | 10 ++++++-- man/Makefile.am | 80 ++++++++++++++++++++++++++++++--------------------------- 3 files changed, 57 insertions(+), 41 deletions(-)