# 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])
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
+ 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)]),
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
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}