[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v6 5/9] docs: add checks to configure for sphinx and doxygen
On Mon, 10 May 2021, Luca Fancellu wrote: > Add checks in the configure files to see if the system > is capable of generate the sphinx html docs using ^ of generating > doxygen and sphinx-breathe tools. I take you updated the configure script but running autoconf again, right? Assuming that is the case: Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > Signed-off-by: Luca Fancellu <luca.fancellu@xxxxxxx> > --- > config/Docs.mk.in | 2 + > docs/configure | 258 ++++++++++++++++++++++++++++++++++++++++++++++ > docs/configure.ac | 15 +++ > 3 files changed, 275 insertions(+) > > diff --git a/config/Docs.mk.in b/config/Docs.mk.in > index e76e5cd5ff..dfd4a02838 100644 > --- a/config/Docs.mk.in > +++ b/config/Docs.mk.in > @@ -7,3 +7,5 @@ POD2HTML := @POD2HTML@ > POD2TEXT := @POD2TEXT@ > PANDOC := @PANDOC@ > PERL := @PERL@ > +SPHINXBUILD := @SPHINXBUILD@ > +DOXYGEN := @DOXYGEN@ > diff --git a/docs/configure b/docs/configure > index 569bd4c2ff..0ebf046a79 100755 > --- a/docs/configure > +++ b/docs/configure > @@ -588,6 +588,8 @@ ac_unique_file="misc/xen-command-line.pandoc" > ac_subst_vars='LTLIBOBJS > LIBOBJS > PERL > +DOXYGEN > +SPHINXBUILD > PANDOC > POD2TEXT > POD2HTML > @@ -673,6 +675,7 @@ POD2MAN > POD2HTML > POD2TEXT > PANDOC > +DOXYGEN > PERL' > > > @@ -1318,6 +1321,7 @@ Some influential environment variables: > POD2HTML Path to pod2html tool > POD2TEXT Path to pod2text tool > PANDOC Path to pandoc tool > + DOXYGEN Path to doxygen tool > PERL Path to Perl parser > > Use these variables to override the choices made by `configure' or to help > @@ -1800,6 +1804,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please > don't use this var. > > > > + > case "$host_os" in > *freebsd*) XENSTORED_KVA=/dev/xen/xenstored ;; > *) XENSTORED_KVA=/proc/xen/xsd_kva ;; > @@ -1812,6 +1817,53 @@ case "$host_os" in > esac > > > +# =========================================================================== > +# https://www.gnu.org/software/autoconf-archive/ax_python_module.html > +# =========================================================================== > +# > +# SYNOPSIS > +# > +# AX_PYTHON_MODULE(modname[, fatal, python]) > +# > +# DESCRIPTION > +# > +# Checks for Python module. > +# > +# If fatal is non-empty then absence of a module will trigger an error. > +# The third parameter can either be "python" for Python 2 or "python3" for > +# Python 3; defaults to Python 3. > +# > +# LICENSE > +# > +# Copyright (c) 2008 Andrew Collier > +# > +# Copying and distribution of this file, with or without modification, are > +# permitted in any medium without royalty provided the copyright notice > +# and this notice are preserved. This file is offered as-is, without any > +# warranty. > + > +#serial 9 > + > +# This is what autoupdate's m4 run will expand. It fires > +# the warning (with _au_warn_XXX), outputs it into the > +# updated configure.ac (with AC_DIAGNOSE), and then outputs > +# the replacement expansion. > + > + > +# This is an auxiliary macro that is also run when > +# autoupdate runs m4. It simply calls m4_warning, but > +# we need a wrapper so that each warning is emitted only > +# once. We break the quoting in m4_warning's argument in > +# order to expand this macro's arguments, not AU_DEFUN's. > + > + > +# Finally, this is the expansion that is picked up by > +# autoconf. It tells the user to run autoupdate, and > +# then outputs the replacement expansion. We do not care > +# about autoupdate's warning because that contains > +# information on what to do *after* running autoupdate. > > > test "x$prefix" = "xNONE" && prefix=$ac_default_prefix > @@ -2232,6 +2284,212 @@ $as_echo "$as_me: WARNING: pandoc is not available so > some documentation won't b > fi > > > +# If sphinx is installed, make sure to have also the dependencies to build > +# Sphinx documentation. > +for ac_prog in sphinx-build > +do > + # Extract the first word of "$ac_prog", so it can be a program name with > args. > +set dummy $ac_prog; ac_word=$2 > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 > +$as_echo_n "checking for $ac_word... " >&6; } > +if ${ac_cv_prog_SPHINXBUILD+:} false; then : > + $as_echo_n "(cached) " >&6 > +else > + if test -n "$SPHINXBUILD"; then > + ac_cv_prog_SPHINXBUILD="$SPHINXBUILD" # Let the user override the test. > +else > +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR > +for as_dir in $PATH > +do > + IFS=$as_save_IFS > + test -z "$as_dir" && as_dir=. > + for ac_exec_ext in '' $ac_executable_extensions; do > + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then > + ac_cv_prog_SPHINXBUILD="$ac_prog" > + $as_echo "$as_me:${as_lineno-$LINENO}: found > $as_dir/$ac_word$ac_exec_ext" >&5 > + break 2 > + fi > +done > + done > +IFS=$as_save_IFS > + > +fi > +fi > +SPHINXBUILD=$ac_cv_prog_SPHINXBUILD > +if test -n "$SPHINXBUILD"; then > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SPHINXBUILD" >&5 > +$as_echo "$SPHINXBUILD" >&6; } > +else > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 > +$as_echo "no" >&6; } > +fi > + > + > + test -n "$SPHINXBUILD" && break > +done > +test -n "$SPHINXBUILD" || SPHINXBUILD="no" > + > + if test "x$SPHINXBUILD" = xno; then : > + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sphinx-build is not > available so sphinx documentation \ > +won't be built" >&5 > +$as_echo "$as_me: WARNING: sphinx-build is not available so sphinx > documentation \ > +won't be built" >&2;} > +else > + > + # Extract the first word of "sphinx-build", so it can be a > program name with args. > +set dummy sphinx-build; ac_word=$2 > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 > +$as_echo_n "checking for $ac_word... " >&6; } > +if ${ac_cv_path_SPHINXBUILD+:} false; then : > + $as_echo_n "(cached) " >&6 > +else > + case $SPHINXBUILD in > + [\\/]* | ?:[\\/]*) > + ac_cv_path_SPHINXBUILD="$SPHINXBUILD" # Let the user override the test > with a path. > + ;; > + *) > + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR > +for as_dir in $PATH > +do > + IFS=$as_save_IFS > + test -z "$as_dir" && as_dir=. > + for ac_exec_ext in '' $ac_executable_extensions; do > + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then > + ac_cv_path_SPHINXBUILD="$as_dir/$ac_word$ac_exec_ext" > + $as_echo "$as_me:${as_lineno-$LINENO}: found > $as_dir/$ac_word$ac_exec_ext" >&5 > + break 2 > + fi > +done > + done > +IFS=$as_save_IFS > + > + ;; > +esac > +fi > +SPHINXBUILD=$ac_cv_path_SPHINXBUILD > +if test -n "$SPHINXBUILD"; then > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SPHINXBUILD" >&5 > +$as_echo "$SPHINXBUILD" >&6; } > +else > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 > +$as_echo "no" >&6; } > +fi > + > + > + > + > + # Extract the first word of "doxygen", so it can be a program name with > args. > +set dummy doxygen; ac_word=$2 > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 > +$as_echo_n "checking for $ac_word... " >&6; } > +if ${ac_cv_path_DOXYGEN+:} false; then : > + $as_echo_n "(cached) " >&6 > +else > + case $DOXYGEN in > + [\\/]* | ?:[\\/]*) > + ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. > + ;; > + *) > + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR > +for as_dir in $PATH > +do > + IFS=$as_save_IFS > + test -z "$as_dir" && as_dir=. > + for ac_exec_ext in '' $ac_executable_extensions; do > + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then > + ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" > + $as_echo "$as_me:${as_lineno-$LINENO}: found > $as_dir/$ac_word$ac_exec_ext" >&5 > + break 2 > + fi > +done > + done > +IFS=$as_save_IFS > + > + ;; > +esac > +fi > +DOXYGEN=$ac_cv_path_DOXYGEN > +if test -n "$DOXYGEN"; then > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 > +$as_echo "$DOXYGEN" >&6; } > +else > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 > +$as_echo "no" >&6; } > +fi > + > + > + if ! test -x "$ac_cv_path_DOXYGEN"; then : > + > + as_fn_error $? "doxygen is needed" "$LINENO" 5 > + > +fi > + > + > + if test -z $PYTHON; > + then > + if test -z ""; > + then > + PYTHON="python3" > + else > + PYTHON="" > + fi > + fi > + PYTHON_NAME=`basename $PYTHON` > + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: > breathe" >&5 > +$as_echo_n "checking $PYTHON_NAME module: breathe... " >&6; } > + $PYTHON -c "import breathe" 2>/dev/null > + if test $? -eq 0; > + then > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 > +$as_echo "yes" >&6; } > + eval HAVE_PYMOD_BREATHE=yes > + else > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 > +$as_echo "no" >&6; } > + eval HAVE_PYMOD_BREATHE=no > + # > + if test -n "yes" > + then > + as_fn_error $? "failed to find required module breathe" > "$LINENO" 5 > + exit 1 > + fi > + fi > + > + > + if test -z $PYTHON; > + then > + if test -z ""; > + then > + PYTHON="python3" > + else > + PYTHON="" > + fi > + fi > + PYTHON_NAME=`basename $PYTHON` > + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: > sphinx_rtd_theme" >&5 > +$as_echo_n "checking $PYTHON_NAME module: sphinx_rtd_theme... " >&6; } > + $PYTHON -c "import sphinx_rtd_theme" 2>/dev/null > + if test $? -eq 0; > + then > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 > +$as_echo "yes" >&6; } > + eval HAVE_PYMOD_SPHINX_RTD_THEME=yes > + else > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 > +$as_echo "no" >&6; } > + eval HAVE_PYMOD_SPHINX_RTD_THEME=no > + # > + if test -n "yes" > + then > + as_fn_error $? "failed to find required module sphinx_rtd_theme" > "$LINENO" 5 > + exit 1 > + fi > + fi > + > + > + > +fi > + > > # Extract the first word of "perl", so it can be a program name with args. > set dummy perl; ac_word=$2 > diff --git a/docs/configure.ac b/docs/configure.ac > index c2e5edd3b3..a2ff55f30a 100644 > --- a/docs/configure.ac > +++ b/docs/configure.ac > @@ -20,6 +20,7 @@ m4_include([../m4/docs_tool.m4]) > m4_include([../m4/path_or_fail.m4]) > m4_include([../m4/features.m4]) > m4_include([../m4/paths.m4]) > +m4_include([../m4/ax_python_module.m4]) > > AX_XEN_EXPAND_CONFIG() > > @@ -29,6 +30,20 @@ AX_DOCS_TOOL_PROG([POD2HTML], [pod2html]) > AX_DOCS_TOOL_PROG([POD2TEXT], [pod2text]) > AX_DOCS_TOOL_PROG([PANDOC], [pandoc]) > > +# If sphinx is installed, make sure to have also the dependencies to build > +# Sphinx documentation. > +AC_CHECK_PROGS([SPHINXBUILD], [sphinx-build], [no]) > + AS_IF([test "x$SPHINXBUILD" = xno], > + [AC_MSG_WARN(sphinx-build is not available so sphinx documentation \ > +won't be built)], > + [ > + AC_PATH_PROG([SPHINXBUILD], [sphinx-build]) > + AX_DOCS_TOOL_REQ_PROG([DOXYGEN], [doxygen]) > + AX_PYTHON_MODULE([breathe],[yes]) > + AX_PYTHON_MODULE([sphinx_rtd_theme], [yes]) > + ] > + ) > + > AC_ARG_VAR([PERL], [Path to Perl parser]) > AX_PATH_PROG_OR_FAIL([PERL], [perl])
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |