make message about texi2mdoc more clear.
[oweals/gnunet.git] / configure.ac
index ecdf33b5a74d2d2712cf0c0c647d9d74e131b4cc..9af70d25b4692c1054d922476d4287c0244ef04d 100644 (file)
@@ -21,7 +21,7 @@
 #
 AC_PREREQ(2.61)
 # Checks for programs.
-AC_INIT([gnunet], [0.11.6], [bug-gnunet@gnu.org])
+AC_INIT([gnunet], [0.11.8], [bug-gnunet@gnu.org])
 AC_CONFIG_AUX_DIR([build-aux])
 
 # check for legacy option that is no longer supported (#5627) and fail hard
@@ -222,10 +222,17 @@ AC_CHECK_LIB(c, getloadavg, AC_DEFINE(HAVE_GETLOADAVG,1,[getloadavg supported]))
 AC_CHECK_PROG(VAR_GETOPT_BINARY, getopt, true, false)
 AM_CONDITIONAL(HAVE_GETOPT_BINARY, $VAR_GETOPT_BINARY)
 
+AC_CHECK_PROGS(PKG_CONFIG, [pkgconf, pkg-config], false)
+AM_CONDITIONAL(HAVE_PKG_CONFIG, test x$PKG_CONFIG != xfalse)
+
 AC_CHECK_PROG(VAR_SSH_BINARY, ssh, true, false)
 AM_CONDITIONAL(HAVE_SSH_BINARY, $VAR_SSH_BINARY)
-AM_CONDITIONAL(HAVE_SSH_KEY,  ssh -D 12345 -o "BatchMode yes" -o "UserKnownHostsFile /tmp/gnunet_test_cosks_ssh_garbage" -o "StrictHostKeyChecking no" 127.0.0.1 echo -n)
-rm -f /tmp/gnunet_test_cosks_ssh_garbage
+AC_MSG_CHECKING(for SSH key)
+  AM_CONDITIONAL(HAVE_SSH_KEY,  ssh -D 12345 -o "BatchMode yes" -o "UserKnownHostsFile /tmp/gnunet_test_cosks_ssh_garbage" -o "StrictHostKeyChecking no" 127.0.0.1 echo -n)
+  if test -f /tmp/gnunet_test_cosks_ssh_garbage; then
+     rm -f /tmp/gnunet_test_cosks_ssh_garbage
+  fi
+
 
 # autotools' m4 for python has no maximum version!
 # python3.4 - python3.8 for tests (3.8 unchecked)
@@ -316,6 +323,10 @@ AS_IF([test x"$VAR_UPNPC_BINARY" != x"false"],
   [AC_MSG_WARN([warning: 'upnpc' binary not found.])])
 
 
+# checkbashisms
+AC_CHECK_PROGS(CHECKBASHISMS_BINARY, [checkbashisms checkbashisms.pl], false)
+AM_CONDITIONAL(HAVE_CHECKBASHISMS, test x$CHECKBASHISMS_BINARY != xfalse)
+
 # uncrustify
 # TODO: maybe add flag to pass location
 AC_CHECK_PROG(UNCRUSTIFY_BINARY, uncrustify, true)
@@ -426,6 +437,18 @@ AS_IF([test "x$texi2mdoc_generation" = "xyes"],
                  [0],
                  [Not building section 7 mdoc output])])
 
+# test for texi2mdoc (the binary, not the script distributed
+# with autogen)
+# TODO: refactor this and the check above.
+AC_MSG_CHECKING(for texi2mdoc binary)
+AC_CHECK_PROGS(TEXI2MDOC_BINARY, [texi2mdoc], false)
+AM_CONDITIONAL(HAVE_TEXI2MDOC, test x$TEXI2MDOC_BINARY != xfalse)
+
+# test for mandoc
+AC_MSG_CHECKING(for mandoc binary)
+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],
@@ -639,6 +662,8 @@ AS_IF([test "$bluetooth" = 1],
       [AC_DEFINE([HAVE_LIBBLUETOOTH],[0],[Lacking bluetooth library])])
 
 # check for zbar library
+# TODO: Add checks for: -lSM, -lICE, -lX11, -lXv and -ljpeg
+# TODO: if zbar exists.
 zbar=0
 AC_MSG_CHECKING(for libzbar)
 AC_ARG_WITH(zbar,
@@ -1022,7 +1047,7 @@ AS_IF([test x$ltdl = x1],
 [
  AC_MSG_RESULT([libltdl found])
 ],[
- AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool), try installing libltdl-dev])
+ AC_MSG_ERROR([GNUnet requires libltdl (from GNU libtool).])
 ])
 # restore LIBS
 LIBS=$SAVE_LIBS
@@ -1033,6 +1058,9 @@ LIBS=$SAVE_LIBS
 # if none exist, fail and message that libidn or libidn2
 # is required with a preference for libidn2.
 # TODO: What we have right here can probably be improved.
+AC_MSG_CHECKING(for idn or idn2)
+
+AC_MSG_CHECKING(for idn)
 my_with_libidn=1
 AC_ARG_WITH(libidn,
             AS_HELP_STRING([--with-libidn=pathname],
@@ -1041,19 +1069,20 @@ AC_ARG_WITH(libidn,
             [withval="yes"])
 AS_IF([test x_$withval = x_yes],
       [AC_CHECK_HEADERS([idna.h],
-          AC_MSG_NOTICE([Found idna.h]),
-          AC_CHECK_HEADERS([idn/idna.h],
-               AC_MSG_NOTICE([Found idn/idna.h]),
-               my_with_libidn=0))],
+                        AC_MSG_NOTICE([Found idna.h]),
+                        AC_CHECK_HEADERS([idn/idna.h],
+                                         AC_MSG_NOTICE([Found idn/idna.h]),
+                                         my_with_libidn=0))],
       [AS_IF([test x_$withval != x_no],
              [CFLAGS="$CFLAGS -I$withval/include"
               LDFLAGS="$LDFLAGS -L$withval/lib"
               AC_CHECK_HEADERS([idna.h],
-                AC_MSG_NOTICE([Found idna.h]),
-               [AC_MSG_NOTICE([Failed to find idna.h])
-                 my_with_libidn=0])],
+                               AC_MSG_NOTICE([Found idna.h]),
+                                  [AC_MSG_NOTICE([Failed to find idna.h])
+                               my_with_libidn=0])],
              [my_with_libidn=0])])
 
+AC_MSG_CHECKING(for idn2)
 my_with_libidn2=1
 AC_ARG_WITH(libidn2,
             AS_HELP_STRING([--with-libidn2=pathname],
@@ -1062,15 +1091,15 @@ AC_ARG_WITH(libidn2,
             [withval="yes"])
 AS_IF([test x_$withval = x_yes],
       [AC_CHECK_HEADERS([idn2.h],
-       AC_MSG_NOTICE([Found idn2.h]),
-       AC_CHECK_HEADERS([idn2/idn2.h],
-          AC_MSG_NOTICE([Found idn2/idn2.h]),
-          [AC_MSG_NOTICE([Failed to find idn2.h])
-           my_with_libidn2=0]))],
+                        AC_MSG_NOTICE([Found idn2.h]),
+                        AC_CHECK_HEADERS([idn2/idn2.h],
+                                         AC_MSG_NOTICE([Found idn2/idn2.h]),
+                                         [AC_MSG_NOTICE([Failed to find idn2.h])
+                                         my_with_libidn2=0]))],
       [AS_IF([test x_$withval != x_no],
              [CFLAGS="$CFLAGS -I$withval/include"
               LDFLAGS="$LDFLAGS -L$withval/lib"],
-            [my_with_libidn2=0])])
+                 [my_with_libidn2=0])])
 
 AC_MSG_CHECKING([if libidn can be used])
 # Check for LIBIDNs
@@ -1089,8 +1118,7 @@ AS_IF([test x$my_with_libidn2 = x1],
                                        [Define to 1 if you have 'libidn2' (-lidn2).])],
                     [MISSING_DEPS="${MISSING_DEPS}${MISSING_SEP}libidn2"
                      MISSING_SEP=", "])])
-AM_CONDITIONAL(HAVE_LIBIDN2,
-               test x$working_libidn2 = x1)
+AM_CONDITIONAL(HAVE_LIBIDN2, test x$working_libidn2 = x1)
 AS_IF([test x$working_libidn2 = x0],
       [AS_IF([test x$my_with_libidn = x1],
              [AC_MSG_NOTICE([Checking for libidn])
@@ -1244,9 +1272,9 @@ AC_SUBST(SQLITE_LDFLAGS)
 LDFLAGS=$SAVE_LDFLAGS
 CPPFLAGS=$SAVE_CPPFLAGS
 
-# test for postgres
+# test for postgres:
 postgres=false
-# even running the check for postgres breaks emscripten ...
+# even running the check for postgres breaks emscripten
 AS_IF([test "$taler_only" != yes],
       [AX_LIB_POSTGRESQL([9.5],
         [CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
@@ -1254,8 +1282,11 @@ AS_IF([test "$taler_only" != yes],
          postgres=true)
         ],
         [AC_MSG_RESULT([no postgres])])])
-AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
 
+AM_CONDITIONAL(HAVE_POSTGRESQL, test x$postgres = xtrue)
+AS_IF([test "x$postgres" = xtrue],
+      [AC_DEFINE([HAVE_POSTGRESQL],[1],[Have PostgreSQL])],
+      [AC_DEFINE([HAVE_POSTGRESQL],[0],[Lacking PostgreSQL])])
 
 LDFLAGS=$SAVE_LDFLAGS
 CPPFLAGS=$SAVE_CPPFLAGS
@@ -1340,9 +1371,11 @@ LIBS=$SAVE_LIBS
 LDFLAGS=$SAVE_LDFLAGS
 CPPFLAGS=$SAVE_CPPFLAGS
 
+# TODO: should this test for "or" not "and"?
+# TODO: Add postgres?
 AS_IF([test "$sqlite" = 0 -a "$mysql" = 0],
 [
- AC_MSG_ERROR([GNUnet requires SQLite or MySQL])
+ AC_MSG_ERROR([GNUnet requires SQLite or MySQL / MariaDB.])
 ])
 
 # libmicrohttpd
@@ -1762,7 +1795,6 @@ doc/man/Makefile
 doc/doxygen/Makefile
 doc/handbook/Makefile
 doc/tutorial/Makefile
-lint/Makefile
 m4/Makefile
 po/Makefile.in
 src/Makefile
@@ -1915,6 +1947,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"])
@@ -1928,10 +1964,20 @@ AS_IF([test "x$working_libidn2" = x1],
 # -- libidn 1
 AS_IF([test "x$working_libidn1" = x1],
       [libidn1_msg="libidn1"])
+# -- texi2mdoc-generation
+AS_IF([test "x$texi2mdoc_generation" = "xyes"],
+      [mdocml_msg="yes"],
+      [mdocml_msg="no"])
 # -- texi2mdoc
-AS_IF([test "x$texi2mdoc_generation" = x1],
-      [mdoc_msg="yes"],
-      [mdoc_msg="no"])
+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"],
@@ -1939,15 +1985,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"])
@@ -1963,7 +2009,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"],
@@ -2009,7 +2055,9 @@ AS_IF([test x$gnutls != xtrue],
               gnutls_msg="yes (without DANE support)"],
              [gnutls_msg="yes (with DANE support)"])])
 # -- databases
-AS_IF([test $mysqlfail = true]
+# TODO: this always returns true, the check might
+# TODO: not be working as intended (for msqlfail).
+AS_IF([test x$mysqlfail = "true"]
       [AC_MSG_NOTICE([WARNING: optional MySQL not found (or too old)])])
 AS_IF([test "$mysql" = true],
       [features_msg="$features_msg mysql"
@@ -2033,7 +2081,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
@@ -2071,9 +2119,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}