diff options
Diffstat (limited to 'm4m/gp-documentation.m4')
-rw-r--r-- | m4m/gp-documentation.m4 | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/m4m/gp-documentation.m4 b/m4m/gp-documentation.m4 new file mode 100644 index 0000000..c355f06 --- /dev/null +++ b/m4m/gp-documentation.m4 @@ -0,0 +1,149 @@ +dnl +dnl check where to install documentation +dnl +dnl determines documentation "root directory", i.e. the directory +dnl where all documentation will be placed in +dnl + +AC_DEFUN([GP_DOC_GENERAL],[dnl +AC_MSG_CHECKING([whether to build any docs]) +AC_ARG_ENABLE([docs], [dnl +AS_HELP_STRING([--disable-docs], [whether to create any documentation])], [dnl +case "$enableval" in + yes|true|on) gp_build_docs="yes" ;; + *) gp_build_docs="no" ;; +esac +],[dnl +gp_build_docs="yes" +])dnl +AC_MSG_RESULT([${gp_build_docs}]) +AM_CONDITIONAL([BUILD_DOCS], [test "x${gp_build_docs}" = "xyes"]) +])dnl + +AC_DEFUN([GP_CHECK_DOC_DIR], +[ +AC_REQUIRE([GP_DOC_GENERAL])dnl +AC_BEFORE([$0], [GP_BUILD_GTK_DOCS])dnl +AC_BEFORE([$0], [GP_CHECK_DOXYGEN])dnl + +AC_ARG_WITH([doc-dir], +[AS_HELP_STRING([--with-doc-dir=PATH], +[Where to install docs [default=autodetect]])]) + +# check for the main ("root") documentation directory +AC_MSG_CHECKING([main docdir]) + +if test "x${with_doc_dir}" != "x" +then # docdir is given as parameter + docdir="${with_doc_dir}" + AC_MSG_RESULT([${docdir} (from parameter)]) +else # otherwise invent a docdir hopefully compatible with system policy + if test -d "/usr/share/doc" + then + maindocdir='${prefix}/share/doc' + AC_MSG_RESULT([${maindocdir} (FHS style)]) + elif test -d "/usr/doc" + then + maindocdir='${prefix}/doc' + AC_MSG_RESULT([${maindocdir} (old style)]) + else + maindocdir='${datadir}/doc' + AC_MSG_RESULT([${maindocdir} (default value)]) + fi + AC_MSG_CHECKING([package docdir]) + # check whether to include package version into documentation path + # FIXME: doesn't work properly. + if ls -d /usr/{share/,}doc/make-[0-9]* > /dev/null 2>&1 + then + docdir="${maindocdir}/${PACKAGE}-${VERSION}" + AC_MSG_RESULT([${docdir} (redhat style)]) + else + docdir="${maindocdir}/${PACKAGE}" + AC_MSG_RESULT([${docdir} (default style)]) + fi +fi + +AC_SUBST([docdir]) +])dnl + +dnl +dnl check whether to build docs and where to: +dnl +dnl * determine presence of prerequisites (only gtk-doc for now) +dnl * determine destination directory for HTML files +dnl + +AC_DEFUN([GP_BUILD_GTK_DOCS], +[ +# docdir has to be determined in advance +AC_REQUIRE([GP_CHECK_DOC_DIR]) + +# --------------------------------------------------------------------------- +# gtk-doc: We use gtk-doc for building our documentation. However, we +# require the user to explicitely request the build. +# --------------------------------------------------------------------------- +try_gtkdoc=false +gtkdoc_msg="no (not requested)" +have_gtkdoc=false +AC_ARG_ENABLE([docs], +[AS_HELP_STRING([--enable-docs], +[Use gtk-doc to build documentation [default=no]])],[ + if test x$enableval = xyes; then + try_gtkdoc=true + fi +]) +if $try_gtkdoc; then + AC_PATH_PROG([GTKDOC],[gtkdoc-mkdb]) + if test -n "${GTKDOC}"; then + have_gtkdoc=true + gtkdoc_msg="yes" + else + gtkdoc_msg="no (http://www.gtk.org/rdp/download.html)" + fi +fi +AM_CONDITIONAL([ENABLE_GTK_DOC], [$have_gtkdoc]) +GP_CONFIG_MSG([build API docs with gtk-doc],[$gtkdoc_msg]) + + +# --------------------------------------------------------------------------- +# Give the user the possibility to install html documentation in a +# user-defined location. +# --------------------------------------------------------------------------- +AC_ARG_WITH([html-dir], +[AS_HELP_STRING([--with-html-dir=PATH], +[Where to install html docs [default=autodetect]])]) + +AC_MSG_CHECKING([for html dir]) +if test "x${with_html_dir}" = "x" ; then + htmldir="${docdir}/html" + AC_MSG_RESULT([${htmldir} (default)]) +else + htmldir="${with_html_dir}" + AC_MSG_RESULT([${htmldir} (from parameter)]) +fi +AC_SUBST([htmldir]) +apidocdir="${htmldir}/api" +AC_SUBST([apidocdir}]) + +])dnl + + +dnl doxygen related stuff +dnl look for tools +dnl define substitutions for Doxyfile.in +AC_DEFUN([GP_CHECK_DOXYGEN],[dnl +AC_REQUIRE([GP_CHECK_DOC_DIR])dnl +AC_PATH_PROG([DOT], [dot], [false]) +AC_PATH_PROG([DOXYGEN], [doxygen], [false]) +AM_CONDITIONAL([HAVE_DOXYGEN], [test "x$DOXYGEN" != "xfalse"]) +AM_CONDITIONAL([HAVE_DOT], [test "x$DOT" != "xfalse"]) +if test "x$DOT" != "xfalse"; then + AC_SUBST([HAVE_DOT],[YES]) +else + AC_SUBST([HAVE_DOT],[NO]) +fi +AC_SUBST([HTML_APIDOC_DIR], ["${PACKAGE_TARNAME}-api.html"]) +AC_SUBST([DOXYGEN_OUTPUT_DIR], [doxygen-output]) +AC_SUBST([HTML_APIDOC_INTERNALS_DIR], ["${PACKAGE_TARNAME}-internals.html"]) +])dnl + |