diff options
author | Daniel Elstner <daniel.kitta@gmail.com> | 2009-08-15 00:28:05 +0200 |
---|---|---|
committer | Daniel Elstner <daniel.kitta@gmail.com> | 2009-08-15 00:28:05 +0200 |
commit | afbe1be2bc26ad317a1587bd70401e6dd799dab8 (patch) | |
tree | d53f54dd5ce00ebfabd47409b221d02a3cd17ebb /macros | |
parent | 42bfef74f095fcca5b2eb6e3d1d1fc03621a0984 (diff) | |
download | mm-common-afbe1be2bc26ad317a1587bd70401e6dd799dab8.tar.gz |
Restructure and comment MM_ARG_WITH_TAGFILE_DOC
* macros/mm-doc.m4 (_MM_ARG_WITH_TAGFILE_DOC): Add a fourth parameter
pkg-variable to avoid repeating the M4 expression to select between
the ${htmlrefdir} and ${htmlrefpub} values for @DOXYGEN_TAGFILES@.
Simplify the AS_CASE logic used to test for a trailing slash. Move
the code which appends a trailing slash to ${htmlrefpub} to a later
point in the shell execution, in order to correctly append the slash
to a user-supplied local path as well.
(MM_ARG_WITH_TAGFILE_DOC): Pass the additional pkg-variable argument
to _MM_ARG_WITH_TAGFILE_DOC().
Diffstat (limited to 'macros')
-rw-r--r-- | macros/mm-doc.m4 | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/macros/mm-doc.m4 b/macros/mm-doc.m4 index ef0201d..2d7711f 100644 --- a/macros/mm-doc.m4 +++ b/macros/mm-doc.m4 @@ -140,58 +140,63 @@ AC_REQUIRE([MM_CONFIG_DOCTOOL_DIR])[]dnl AC_REQUIRE([_MM_ARG_ENABLE_DOCUMENTATION])[]dnl ]) -## _MM_ARG_WITH_TAGFILE_DOC(option-basename, tagfilename, [module]) +## _MM_ARG_WITH_TAGFILE_DOC(option-basename, pkg-variable, tagfilename, [module]) ## m4_define([_MM_ARG_WITH_TAGFILE_DOC], [dnl AC_MSG_CHECKING([for $1 documentation]) AC_ARG_WITH([$1-doc], [AS_HELP_STRING([[--with-$1-doc=[TAGFILE@]HTMLREFDIR]], - [Link to external $1 documentation]m4_ifval([$3], [[ [auto]]]))], + [Link to external $1 documentation]m4_ifval([$4], [[ [auto]]]))], [ mm_htmlrefdir=`[expr "@$withval" : '.*@\(.*\)' 2>&]AS_MESSAGE_LOG_FD` mm_tagname=`[expr "/$withval" : '[^@]*[\\/]\([^\\/@]*\)@' 2>&]AS_MESSAGE_LOG_FD` mm_tagpath=`[expr "X$withval" : 'X\([^@]*\)@' 2>&]AS_MESSAGE_LOG_FD` - test "x$mm_tagname" != x || mm_tagname="$2" + test "x$mm_tagname" != x || mm_tagname="$3" test "x$mm_tagpath" != x || mm_tagpath=$mm_tagname[]dnl ], [ mm_htmlrefdir= - mm_tagname="$2" + mm_tagname="$3" mm_tagpath=$mm_tagname[]dnl ]) + # Prepend working direcory if the tag file path starts with ./ or ../ AS_CASE([$mm_tagpath], [[.[\\/]*|..[\\/]*]], [mm_tagpath=`pwd`/$mm_tagpath]) -m4_ifval([$3], [dnl + +m4_ifval([$4], [dnl + # If no local directory was specified, get the default from the .pc file AS_IF([test "x$mm_htmlrefdir" = x], [ - mm_htmlrefdir=`$PKG_CONFIG --variable=htmlrefdir "$3" 2>&AS_MESSAGE_LOG_FD`dnl + mm_htmlrefdir=`$PKG_CONFIG --variable=htmlrefdir "$4" 2>&AS_MESSAGE_LOG_FD`dnl ]) + # If the user specified a Web URL, allow it to override the public location AS_CASE([$mm_htmlrefdir], [[http://*|https://*]], [mm_htmlrefpub=$mm_htmlrefdir], [ - mm_htmlrefpub=`$PKG_CONFIG --variable=htmlrefpub "$3" 2>&AS_MESSAGE_LOG_FD` + mm_htmlrefpub=`$PKG_CONFIG --variable=htmlrefpub "$4" 2>&AS_MESSAGE_LOG_FD` test "x$mm_htmlrefpub" != x || mm_htmlrefpub=$mm_htmlrefdir - AS_CASE([$mm_htmlrefpub], [[*[\\/]]],, [[?*]], [mm_htmlrefpub=$mm_htmlrefpub/]) test "x$mm_htmlrefdir" != x || mm_htmlrefdir=$mm_htmlrefpub ]) + # The user-supplied tag-file name takes precedence if it includes the path AS_CASE([$mm_tagpath], [[*[\\/]*]],, [ - mm_doxytagfile=`$PKG_CONFIG --variable=doxytagfile "$3" 2>&AS_MESSAGE_LOG_FD` + mm_doxytagfile=`$PKG_CONFIG --variable=doxytagfile "$4" 2>&AS_MESSAGE_LOG_FD` test "x$mm_doxytagfile" = x || mm_tagpath=$mm_doxytagfile ]) + # Append a trailing slash to the location, if needed + AS_CASE([/$mm_htmlrefpub], [[*[\\/]]],, [mm_htmlrefpub=$mm_htmlrefpub/]) ])[]dnl - AS_CASE([$mm_htmlrefdir], [[*[\\/]]],, [[?*]], [mm_htmlrefdir=$mm_htmlrefdir/]) + AS_CASE([/$mm_htmlrefdir], [[*[\\/]]],, [mm_htmlrefdir=$mm_htmlrefdir/]) + AC_MSG_RESULT([$mm_tagpath@$mm_htmlrefdir]) AS_IF([test "x$USE_MAINTAINER_MODE" != xno && test ! -f "$mm_tagpath"], - [AC_MSG_WARN([Doxygen tag file $2 not found])]) + [AC_MSG_WARN([Doxygen tag file $3 not found])]) AS_IF([test "x$mm_htmlrefdir" = x], [AC_MSG_WARN([Location of external $1 documentation not set])], [AS_IF([test "x$DOCINSTALL_FLAGS" = x], [DOCINSTALL_FLAGS="-l '$mm_tagname@$mm_htmlrefdir'"], [DOCINSTALL_FLAGS="$DOCINSTALL_FLAGS -l '$mm_tagname@$mm_htmlrefdir'"])]) - AS_IF([test "x$[mm_htmlref]m4_ifval([$3], [pub], [dir])" = x], - [mm_val=$mm_tagpath], - [mm_val="$mm_tagpath=$[mm_htmlref]m4_ifval([$3], [pub], [dir])"]) + AS_IF([test "x$mm_$2" = x], [mm_val=$mm_tagpath], [mm_val="$mm_tagpath=$mm_$2"]) AS_IF([test "x$DOXYGEN_TAGFILES" = x], [DOXYGEN_TAGFILES=[\]"$mm_val[\]"], [DOXYGEN_TAGFILES="$DOXYGEN_TAGFILES "[\]"$mm_val[\]"])[]dnl @@ -232,6 +237,7 @@ m4_ifval([$2], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])])[]dnl AC_REQUIRE([MM_CONFIG_DOCTOOL_DIR])[]dnl AC_REQUIRE([_MM_ARG_ENABLE_DOCUMENTATION])[]dnl dnl -AS_IF([test "x$ENABLE_DOCUMENTATION" != xno], [_MM_ARG_WITH_TAGFILE_DOC( - m4_quote(m4_bpatsubst([$1], [\([-+][0123456789]\|[+]*[._]\).*$])), [$1], [$2])])[]dnl +AS_IF([test "x$ENABLE_DOCUMENTATION" != xno], + [_MM_ARG_WITH_TAGFILE_DOC(m4_quote(m4_bpatsubst([$1], [\([-+][0123456789]\|[+]*[._]\).*$])), + [htmlref]m4_ifval([$2], [[pub]], [[dir]]), [$1], [$2])])[]dnl ]) |