AC_PERL_MODULE_VERSION([MODULE VERSION], [ACTION-IF-TRUE], [ACTION-IF-FALSE])
,
,
Checks if the given list of 'Module Version' are avaiable
Marco Gomes <mpglesi@gmail.com>
Ruben Fonseca <fonseka@gmail.com>
AllPermissive
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. Users of this software should generally follow the
principles of the
MIT License includings its disclaimer.
cryp.to ac-archive's Installed Packages (released)
Checks to see if the list of 'Module Version' are avaiable in the
system. If all the modules in the list are avaiable ACTION-IF-TRUE
is executed. Case one module is not avaiable ACTION-IF-FALSE is
executed and the macro execution is aborted. NOTE: Perl is needed.
Example:
AC_PERL_MODULE_VERSION(CGI::Test 0.104 CGI::Ajax 0.694, ,
AC_MSG_ERROR(Need some Perl modules))
AC_DEFUN([AC_PERL_MODULE_VERSION],[dnl
ac_perl_list_modules="$1"
# Make sure we have perl
if test -z "$PERL"; then
AC_CHECK_PROG(PERL,perl,perl)
fi
# Check the number of arguments
args_num=`echo $ac_perl_list_modules | wc -w`
let "ckeck_args = $args_num % 2"
if test "$check_args" = "1" ; then
AC_MSG_ERROR(syntax error)
else
eval
fi
if test "x$PERL" != x; then
ac_failed=0
while test ${#ac_perl_list_modules} -gt 2 ; do
module_name=`echo $ac_perl_list_modules | cut -d " " -f 1`
module_version=`echo $ac_perl_list_modules | cut -d " " -f 2`
ac_perl_list_modules=`echo $ac_perl_list_modules | cut -d " " -f 3-`
AC_MSG_CHECKING(for perl module $module_name version $module_version)
$PERL "-M$module_name" -e exit > /dev/null 2>&1
if test $? -ne 0; then
AC_MSG_RESULT(no);
ac_failed=1
ac_perl_list_modules=""
else
version=`$PERL "-M$module_name" -e 'print $'"$module_name::VERSION" 2>&1`
$PERL -e 'exit(shift cmp shift)' "$version" "$module_version"
if test $? -eq 0 -o $? -eq 1 ; then
AC_MSG_RESULT(ok);
else
AC_MSG_RESULT(no)
ac_failed=1
ac_perl_list_modules=""
fi
fi;
done
if test "$ac_failed" = 0; then
:
$2
else
:
$3
fi
else
AC_MSG_ERROR(could not find perl)
fi])dnl