On Tue, Jun 11, 2024 at 04:05:03PM GMT, Emil Velikov via B4 Relay wrote:
From: Emil Velikov <emil.l.velikov@xxxxxxxxx> Note that scdoc does not handle natively handle the dummy modules.dep.bin.5 entry, so we need to create one manually. Not a big deal, since it's single static line anyway. Also: pkg-config --variable=scdoc scdoc, produces the full executable and path, although for now we stick with the AC_PATH_PROG approach. Signed-off-by: Emil Velikov <emil.l.velikov@xxxxxxxxx> --- configure.ac | 2 +- man/Makefile.am | 24 ++++++++---------------- man/modules.dep.bin.5 | 1 + 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/configure.ac b/configure.ac index 9527aa2..dcf7479 100644 --- a/configure.ac +++ b/configure.ac @@ -32,7 +32,7 @@ AC_PROG_SED AC_PROG_MKDIR_P AC_PROG_LN_S PKG_PROG_PKG_CONFIG -AC_PATH_PROG([XSLTPROC], [xsltproc]) +AC_PATH_PROG([SCDOC], [scdoc])
we should fail it if scdoc is not found and --disable-manpages is not passed. Right now, it just proceeds without failing, and create bogus manpages: $ scdoc bash: scdoc: command not found $ make ... Making all in man if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/depmod.d.5.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/depmod.d.5.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > depmod.d.5 if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/modprobe.d.5.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/modprobe.d.5.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > modprobe.d.5 if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/modules.dep.5.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/modules.dep.5.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > modules.dep.5 if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/kmod.8.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/kmod.8.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > kmod.8 if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/depmod.8.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/depmod.8.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > depmod.8 if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/insmod.8.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/insmod.8.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > insmod.8 if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/lsmod.8.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/lsmod.8.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > lsmod.8 if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/rmmod.8.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/rmmod.8.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > rmmod.8 if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/modprobe.8.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/modprobe.8.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > modprobe.8 if [ '/usr/lib' != '/lib' ] ; then sed -e 's|@DISTCONFDIR@|/usr/lib|g' ../../man/modinfo.8.scd ; else sed -e '/@DISTCONFDIR@/d' ../../man/modinfo.8.scd ; fi | sed -e 's|@MODULE_DIRECTORY@|/lib/modules|g' | > modinfo.8 $ cat man/modprobe.8 $
AC_PROG_CC_C99 diff --git a/man/Makefile.am b/man/Makefile.am index d62ff21..0285fdd 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -2,37 +2,29 @@ MAN5 = depmod.d.5 modprobe.d.5 modules.dep.5 MAN8 = kmod.8 depmod.8 insmod.8 lsmod.8 rmmod.8 modprobe.8 modinfo.8 MAN_STUB = modules.dep.bin.5 -AM_V_XSLT = $(AM_V_XSLT_$(V)) -AM_V_XSLT_ = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY)) -AM_V_XSLT_0 = @echo " XSLT " $@; - -XSLT = $(if $(XSLTPROC), $(XSLTPROC), xsltproc) +AM_V_SCDOC = $(AM_V_SCDOC_$(V)) +AM_V_SCDOC_ = $(AM_V_SCDOR_$(AM_DEFAULT_VERBOSITY))
^ typo here, so quieting the command doesn't work. Once fixed I get: Making all in man SCDOC modprobe.d.5 SCDOC depmod.d.5 SCDOC modules.dep.5 SCDOC kmod.8 SCDOC depmod.8 SCDOC insmod.8 SCDOC lsmod.8 SCDOC rmmod.8 SCDOC modprobe.8 SCDOC modinfo.8 thanks Lucas De Marchi
+AM_V_SCDOC_0 = @echo " SCDOC " $@; if BUILD_TOOLS dist_man_MANS = $(MAN5) $(MAN8) $(MAN_STUB) -modules.dep.bin.5: modules.dep.5 endif -EXTRA_DIST = $(MAN5:%.5=%.5.xml) $(MAN8:%.8=%.8.xml) +EXTRA_DIST = $(MAN5:%.5=%.5.scd) $(MAN8:%.8=%.8.scd) CLEANFILES = $(dist_man_MANS) define generate_manpage - $(AM_V_XSLT)if [ '$(distconfdir)' != '/lib' ] ; then \ + $(AM_V_SCDOC)if [ '$(distconfdir)' != '/lib' ] ; then \ sed -e 's|@DISTCONFDIR@|$(distconfdir)|g' $< ; \ else \ sed -e '/@DISTCONFDIR@/d' $< ; \ fi | \ sed -e 's|@MODULE_DIRECTORY@|$(module_directory)|g' | \ - $(XSLT) \ - -o $@ \ - --nonet \ - --stringparam man.output.quietly 1 \ - --param funcsynopsis.style "'ansi'" \ - http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl - + $(SCDOC) > $@ endef -%.5: %.5.xml +%.5: %.5.scd $(generate_manpage) -%.8: %.8.xml +%.8: %.8.scd $(generate_manpage) diff --git a/man/modules.dep.bin.5 b/man/modules.dep.bin.5 new file mode 100644 index 0000000..795636b --- /dev/null +++ b/man/modules.dep.bin.5 @@ -0,0 +1 @@ +.so modules.dep.5 -- 2.45.0