From 82cb7f751f4e15e5f97c6f21fc83447cbaba4174 Mon Sep 17 00:00:00 2001 From: Daniel Elstner Date: Fri, 21 Aug 2009 11:48:32 +0200 Subject: Refactor Perl checks into separate Autoconf macros * macros/mm-pkg.m4 (MM_PATH_PERL): New Autoconf macro to locate the Perl interpreter executable. (MM_CHECK_PERL): New Autoconf macro to require a minimum version of the Perl interpreter. * macros/mm-doc.m4 (_MM_ARG_ENABLE_DOCUMENTATION): Remove Perl check. (MM_ARG_ENABLE_DOCUMENTATION): Require MM_PATH_PERL. --- macros/mm-doc.m4 | 7 +++---- macros/mm-pkg.m4 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 58 insertions(+), 9 deletions(-) (limited to 'macros') diff --git a/macros/mm-doc.m4 b/macros/mm-doc.m4 index 2b6df21..5dc69cd 100644 --- a/macros/mm-doc.m4 +++ b/macros/mm-doc.m4 @@ -1,4 +1,4 @@ -## Copyright (c) 2009 Daniel Elstner +## Copyright (c) 2009 Openismus GmbH ## ## This file is part of mm-common. ## @@ -15,7 +15,7 @@ ## You should have received a copy of the GNU General Public License ## along with mm-common. If not, see . -#serial 20090819 +#serial 20090821 ## _MM_CONFIG_DOCTOOL_DIR ## @@ -81,12 +81,10 @@ m4_define([_MM_ARG_ENABLE_DOCUMENTATION], [dnl AC_PROVIDE([$0])[]dnl dnl -AC_ARG_VAR([PERL], [path to Perl interpreter])[]dnl AC_ARG_VAR([DOT], [path to dot utility])[]dnl AC_ARG_VAR([DOXYGEN], [path to Doxygen utility])[]dnl AC_ARG_VAR([XSLTPROC], [path to xsltproc utility])[]dnl dnl -AC_PATH_PROG([PERL], [perl], [perl]) AC_PATH_PROG([DOT], [dot], [dot]) AC_PATH_PROG([DOXYGEN], [doxygen], [doxygen]) AC_PATH_PROG([XSLTPROC], [xsltproc], [xsltproc]) @@ -142,6 +140,7 @@ AC_DEFUN([MM_ARG_ENABLE_DOCUMENTATION], [dnl AC_BEFORE([$0], [MM_ARG_WITH_TAGFILE_DOC])[]dnl AC_REQUIRE([_MM_PRE_INIT])[]dnl +AC_REQUIRE([MM_PATH_PERL])[]dnl AC_REQUIRE([MM_CONFIG_DOCTOOL_DIR])[]dnl AC_REQUIRE([_MM_ARG_ENABLE_DOCUMENTATION])[]dnl ]) diff --git a/macros/mm-pkg.m4 b/macros/mm-pkg.m4 index b0634f3..0b8813b 100644 --- a/macros/mm-pkg.m4 +++ b/macros/mm-pkg.m4 @@ -1,4 +1,4 @@ -## Copyright (c) 2009 Daniel Elstner +## Copyright (c) 2009 Openismus GmbH ## ## This file is part of mm-common. ## @@ -15,7 +15,57 @@ ## You should have received a copy of the GNU General Public License ## along with mm-common. If not, see . -#serial 20090814 +#serial 20090821 + +## _MM_PATH_PERL +## +## Internal helper macro for MM_PATH_PERL. +## +m4_define([_MM_PATH_PERL], +[dnl +AC_PROVIDE([$0])[]dnl +AC_ARG_VAR([PERL], [path to Perl interpreter])[]dnl +AC_PATH_PROG([PERL], [perl], [perl])[]dnl +]) + +## MM_PATH_PERL +## +## Locate the Perl interpreter and set the substitution variable PERL +## to the full path to the perl executable if found, or to 'perl' if +## not found. Also call AC_ARG_VAR() on the PERL variable. +## +AC_DEFUN([MM_PATH_PERL], +[dnl +AC_REQUIRE([_MM_PRE_INIT])[]dnl +AC_REQUIRE([_MM_PATH_PERL])[]dnl +]) + +## _MM_CHECK_PERL(min-version, [action-if-found], [action-if-not-found]) +## +## Internal helper macro for MM_CHECK_PERL. +## +m4_define([_MM_CHECK_PERL], +[dnl +AS_IF([$PERL -e 'require v$1; exit 0;' >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD], + [$2], m4_ifval([$2$3], [[$3]], + [[AC_MSG_FAILURE([[At least Perl ]$1[ is required to build $PACKAGE.]])]]))[]dnl +]) + +## MM_CHECK_PERL([min-version], [action-if-found], [action-if-not-found]) +## +## Run MM_PATH_PERL and then check whether the Perl interpreter can be +## executed and whether it meets the version requirement of +## or later. Execute on success, otherwise execute +## . The default value of is 5.6.0 +## if the argument is empty. +## +AC_DEFUN([MM_CHECK_PERL], +[dnl +m4_assert([$# >= 2])[]dnl +AC_REQUIRE([_MM_PRE_INIT])[]dnl +AC_REQUIRE([_MM_PATH_PERL])[]dnl +_MM_CHECK_PERL(m4_ifval([$1], [[$1]], [[5.6.0]]), [$2], [$3])[]dnl +]) ## MM_PKG_CONFIG_SUBST(variable, arguments, [action-if-found], [action-if-not-found]) ## @@ -31,11 +81,11 @@ m4_assert([$# >= 2])[]dnl AC_REQUIRE([_MM_PRE_INIT])[]dnl AC_REQUIRE([PKG_PROG_PKG_CONFIG])[]dnl AC_MSG_CHECKING([for $1]) - -AS_IF([test -z "${$1+set}"], +dnl +AS_IF([test -z "[$]{$1+set}"], [$1=`$PKG_CONFIG $2 2>&AS_MESSAGE_LOG_FD` AS_IF([test "[$]?" -eq 0], [$3], [$4])]) - +dnl AC_MSG_RESULT([[$]$1]) AC_SUBST([$1])[]dnl ]) -- cgit v1.2.1