configure: add mandoc + texi2mdoc detection
authorng0 <ng0@n0.is>
Wed, 30 Oct 2019 16:53:50 +0000 (16:53 +0000)
committerng0 <ng0@n0.is>
Wed, 30 Oct 2019 16:53:50 +0000 (16:53 +0000)
doc/man: add man-html and man-html-install

.gitignore
configure.ac
doc/man/Makefile.am

index 0f3c0acdfde0b535107f9caa7ae46ea2a9e66ece..b337cc058406fa1a110058c5ac6b3fbb9d5df38d 100644 (file)
@@ -65,6 +65,8 @@ doc/tutorial/gversion.texi
 uncrustify.cfg
 .style.yapf
 
+diffoscope_reports/
+
 # this exists outside of the main repository
 cmake/
 build
index d4e9e0d1fb9fc4bc5f3bc6705d21065050d43e78..a3e6c2385401e301dfbe8b25efa857eff54b9480 100644 (file)
@@ -426,6 +426,17 @@ AS_IF([test "x$texi2mdoc_generation" = "xyes"],
                  [0],
                  [Not building section 7 mdoc output])])
 
+# test for texi2mdoc
+# TODO: refactor this and the check above.
+AC_MSG_CHECKING(for texi2mdoc)
+AC_CHECK_PROGS(TEXI2MDOC_BINARY, [texi2mdoc], false)
+AM_CONDITIONAL(HAVE_TEXI2MDOC, test x$TEXI2MDOC_BINARY != xfalse)
+
+# test for mandoc
+AC_MSG_CHECKING(for mandoc)
+AC_CHECK_PROGS(MANDOC_BINARY, [mandoc], false)
+AM_CONDITIONAL(HAVE_MANDOC, test x$MANDOC_BINARY != xfalse)
+
 # should the build process be building only the documentation?
 AC_MSG_CHECKING(whether to build only documentation)
 AC_ARG_ENABLE([documentation-only],
@@ -1923,6 +1934,10 @@ AS_IF([test "x$enable_java_ports" = "xyes"],
 #### but for now let's keep it here.
 ####
 
+# TODO: We use "WARNING" too often, we need to clarify what
+# TODO: constitutes a WARNING, an ERROR, and a NOTICE, and
+# TODO: other message levels.
+
 # -- print message regarding enabled experimental features
 AS_IF([test "x$enable_experimental" = "xyes"],
       [experimental_msg="experimental features enabled"])
@@ -1936,10 +1951,24 @@ AS_IF([test "x$working_libidn2" = x1],
 # -- libidn 1
 AS_IF([test "x$working_libidn1" = x1],
       [libidn1_msg="libidn1"])
-# -- texi2mdoc
+# -- texi2mdoc-generation
 AS_IF([test "x$texi2mdoc_generation" = x1],
-      [mdoc_msg="yes"],
-      [mdoc_msg="no"])
+      [mdocml_msg="yes"],
+      [mdocml_msg="no"])
+AS_IF([test "$VAR_UPNPC_BINARY" = "false"],
+      [AC_MSG_NOTICE([WARNING: optional upnpc binary not found])
+       upnpc_msg="no (optional)"],
+      [upnpc_msg="yes"])
+# -- texi2mdoc
+AS_IF([test "x$TEXI2MDOC_BINARY" = "false"],
+      [AC_MSG_NOTICE([WARNING: optional texi2mdoc binary not found])
+       texi2mdoc_msg="no (optional)"],
+      [texi2mdoc_msg="yes"])
+# -- mandoc
+AS_IF([test "x$MANDOC_BINARY" = "false"],
+      [AC_MSG_NOTICE([WARNING: optional mandoc binary not found])
+       mandoc_msg="no"],
+      [mandoc_msg="yes"])
 # -- texinfo
 AS_IF([test "x$makeinfo" != "x1"],
       [texinfo_msg="no"],
@@ -1947,15 +1976,15 @@ AS_IF([test "x$makeinfo" != "x1"],
 # -- conversation
 AS_IF([test "x$conversation_backend" = "xnone"],
       [AS_IF([test "x$pulse" != "x1"],
-             [AC_MSG_NOTICE([WARNING: libpulse(audio) not found, conversation will not be built.])
+             [AC_MSG_NOTICE([WARNING: libpulse(audio) not found (required to build conversation against it).])
               libpulse_msg="no"],
              [libpulse_msg="yes"])
        AS_IF([test "x$opus" != "x1"],
-             [AC_MSG_NOTICE([WARNING: libopus not found, conversation will not be built.])
+             [AC_MSG_NOTICE([WARNING: libopus not found (conversation)])
               libopus_msg="no"],
              [libopus_msg="yes"])
        AS_IF([test "x$gst" != "x1"],
-             [AC_MSG_NOTICE([WARNING: GStreamer not found, conversation will not be built.])
+             [AC_MSG_NOTICE([WARNING: GStreamer not found (required to build conversation against it).])
               gstreamer_msg="no"],
              [gstreamer_msg="yes"])],
       [features_msg="$features_msg conversation"])
@@ -1971,7 +2000,7 @@ AS_IF([test "x$jansson" = "x0"],
       [jansson_msg="yes"])
 # -- libextractor
 AS_IF([test "$extractor" != 1],
-      [AC_MSG_WARN([ERROR: libextractor not found, but various file-sharing functions require it])],
+      [AC_MSG_WARN([WARNING: libextractor not found, but various file-sharing functions require it])],
       [libextractor_msg="yes"])
 # -- libzbar
 AS_IF([test "x$zbar" = "x1"],
@@ -2043,7 +2072,7 @@ AC_SUBST(features_msg)
 
 
 # The summary
-# TODO: reduce the length of the last message block ("the message")
+# TODO: reduce the length of the last message block, following "IMPORTANT".
 
 AC_MSG_NOTICE([
 GNUnet Configuration
@@ -2081,9 +2110,11 @@ libopus:                        ${libopus_msg}
 gstreamer:                      ${gstreamer_msg}
 libpulse:                       ${libpulse_msg}
 libextractor:                   ${libextractor_msg}
+texi2mdoc:                      ${texi2mdoc_msg}
+mandoc:                         ${mandoc_msg}
 
 texinfo manual:                 ${texinfo_msg}
-transpiled mdoc manual:         ${mdoc_msg}
+transpiled mdocml manual:       ${mdocml_msg}
 
 features:                       ${features_msg}
 experimental:                   ${experimental_msg}
index a4c81dd43de768b2e29bbac370eca14f0b29b2e0..b3ea1c44e97369102956fdfa39bace9219e0bb3c 100644 (file)
@@ -5,7 +5,7 @@ do_subst = $(SED) -e 's,[@]SYSCONFDIR[@],$(sysconfdir),g'
 gnunet.conf.5: gnunet.conf.5.in Makefile
        $(do_subst) < $(srcdir)/gnunet.conf.5.in > gnunet.conf.5
 
-CLEANFILES = gnunet.conf.5 *.html
+CLEANFILES = gnunet.conf.5
 
 if TEXI2MDOC_GENERATION
 gnunet-c-tutorial.7: Makefile
@@ -17,10 +17,26 @@ gnunet-documentation.7: Makefile
 CLEANFILES += gnunet-documentation.7 gnunet-c-tutorial.7
 endif
 
-
-html:
+if HAVE_MANDOC
+# After I went through the alternatives with the focus
+# on staying as portable as possible to other make
+# implementations, I have to face the fact after hours
+# that this is the most portable way to achieve what
+# I want and that the alternatives are depressing and
+# nonfunctional.
+.PHONY: man-html
+man-html:
        $(SH) $(srcdir)/produce_html.sh
 
+htmldocdir = $(datadir)/doc/gnunet/manhtml/
+.PHONY: man-html-install
+man-html-install:
+       @mkdir -p $(htmldocdir)
+       @mv $(srcdir)/*.html $(htmldocdir)
+
+CLEANFILES += *.html
+endif
+
 man_MANS = \
   gnunet.conf.5 \
   gnunet-arm.1 \