diff mbox

[libdrm,3/3] man: rework the Makefile.am

Message ID 1428511959-25990-3-git-send-email-emil.l.velikov@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Emil Velikov April 8, 2015, 4:52 p.m. UTC
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(-)
diff mbox

Patch

diff --git a/Makefile.am b/Makefile.am
index 42d3d7f..13df80c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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)
diff --git a/configure.ac b/configure.ac
index 320e482..f8adf4f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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
diff --git a/man/Makefile.am b/man/Makefile.am
index d25a293..44b63a5 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -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