Added option with fallback of 'auto' to control building of documentation.

Signed-off-by: Jon A. Cruz <j...@osg.samsung.com>
---
 configure.ac    | 72 ++++++++++++++++++++++++++++++++++++++++++---------------
 doc/Makefile.am |  2 +-
 2 files changed, 55 insertions(+), 19 deletions(-)

diff --git a/configure.ac b/configure.ac
index 329f224..ef26b21 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,6 +38,7 @@ AM_SILENT_RULES([yes])
 # Check for programs
 AC_PROG_CC_C99
 AC_PROG_CXX # Only used by build C++ test
+AC_PROG_GREP
 
 # Initialize libtool
 LT_PREREQ([2.2])
@@ -67,23 +68,58 @@ fi
 AC_SUBST(GCC_CFLAGS)
 AC_SUBST(GCC_CXXFLAGS)
 
-AC_PATH_PROG(DOXYGEN, [doxygen])
-if test "x$DOXYGEN" = "x"; then
-       AC_MSG_WARN([doxygen not found - required for documentation])
-       have_doxygen="no"
-else
-       have_doxygen="yes"
-fi
-AM_CONDITIONAL([HAVE_DOXYGEN], [test "x$have_doxygen" = "xyes"])
-
-AC_PATH_PROG(DOT, dot)
-if test "x$DOT" = "x"; then
-       AC_MSG_WARN([Graphviz's dot not found - required for documentation])
-       have_dot="no"
-else
-       have_dot="yes"
+AC_ARG_ENABLE([documentation],
+             [AC_HELP_STRING([--enable-documentation],
+                             [Enable building the documentation 
(default=auto)])],
+             [build_documentation="$enableval"],
+             [build_documentation="auto"])
+
+if test "x$build_documentation" = "xyes" -o "x$build_documentation" = "xauto"; 
then
+       AC_PATH_PROG(DOXYGEN, doxygen)
+       if test "x$DOXYGEN" = "x"; then
+               if test "x$build_documentation" = "xyes"; then
+                       AC_MSG_ERROR([Documentation build requested but doxygen 
not found. Install doxygen or disable the documentation using 
--disable-documentation])
+               fi
+       else
+               AC_MSG_CHECKING([for compatible doxygen version])
+               doxygen_version=`$DOXYGEN --version`
+               AS_VERSION_COMPARE([$doxygen_version], [1.6.0],
+                                  [AC_MSG_RESULT([no])
+                                   DOXYGEN=""],
+                                  [AC_MSG_RESULT([yes])],
+                                  [AC_MSG_RESULT([yes])])
+               if test "x$DOXYGEN" = "x" -a "x$build_documentation" = "xyes"; 
then
+                       AC_MSG_ERROR([Doxygen $doxygen_version too old. Doxygen 
1.6+ required for documentation build. Install required doxygen version or 
disable the documentation using --disable-documentation])
+               fi
+       fi
+
+       AC_PATH_PROG(DOT, dot)
+       if test "x$DOT" = "x"; then
+               if test "x$build_documentation" = "xyes"; then
+                       AC_MSG_ERROR([Documentation build requested but 
graphviz's dot not found. Install graphviz or disable the documentation using 
--disable-documentation])
+               fi
+       else
+               AC_MSG_CHECKING([for compatible dot version])
+               dot_version=`$DOT -V 2>&1|$GREP -oP 
'(?<=version\W)@<:@0-9.@:>@*(?=\W(.*))'`
+               AS_VERSION_COMPARE([$dot_version], [2.26.0],
+                                  [AC_MSG_RESULT([no])
+                                   DOT=""],
+                                  [AC_MSG_RESULT([yes])],
+                                  [AC_MSG_RESULT([yes])])
+               if test "x$DOT" = "x" -a "x$build_documentation" = "xyes"; then
+                       AC_MSG_ERROR([Graphviz dot $dot_version too old. 
Graphviz 2.26+ required for documentation build. Install required graphviz 
version or disable the documentation using --disable-documentation])
+               fi
+       fi
+
+       if test "x$DOXYGEN" != "x" -a "x$DOT" != "x"; then
+               AC_CONFIG_FILES([
+               doc/libinput.doxygen
+               ])
+               build_documentation="yes"
+       else
+               build_documentation="no"
+       fi
 fi
-AM_CONDITIONAL([HAVE_DOT], [test "x$have_dot" = "xyes"])
 
 AC_ARG_ENABLE(event-gui,
              AS_HELP_STRING([--enable-event-gui], [Build the GUI event viewer 
(default=auto)]),
@@ -120,10 +156,10 @@ fi
 
 AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
 AM_CONDITIONAL(BUILD_TESTS, [test "x$build_tests" = "xyes"])
+AM_CONDITIONAL(BUILD_DOCS, [test "x$build_documentation" = "xyes"])
 
 AC_CONFIG_FILES([Makefile
                 doc/Makefile
-                doc/libinput.doxygen
                 src/Makefile
                 src/libinput.pc
                 src/libinput-version.h
@@ -134,7 +170,7 @@ AC_OUTPUT
 AC_MSG_RESULT([
        Prefix                  ${prefix}
 
-       Build documentation     ${have_doxygen}
+       Build documentation     ${build_documentation}
        Build tests             ${build_tests}
        Tests use valgrind      ${VALGRIND}
        Build GUI event tool    ${build_eventgui}
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 624326b..30f6089 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,6 +1,6 @@
 EXTRA_DIST = touchpad-tap-state-machine.svg 
touchpad-softbutton-state-machine.svg
 
-if HAVE_DOXYGEN
+if BUILD_DOCS
 
 noinst_DATA = html/index.html
 
-- 
1.9.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to