dnl @synopsis AC_PERL_MODULE_VERSION([MODULE VERSION], [ACTION-IF-TRUE], [ACTION-IF-FALSE]) dnl dnl @summary Checks if the given list of 'Module Version' are avaiable dnl dnl Checks to see if the list of 'Module Version' are avaiable in the dnl system. If all the modules in the list are avaiable ACTION-IF-TRUE dnl is executed. Case one module is not avaiable ACTION-IF-FALSE is dnl executed and the macro execution is aborted. NOTE: Perl is needed. dnl dnl Example: dnl dnl AC_PERL_MODULE_VERSION(CGI::Test 0.104 CGI::Ajax 0.694, , dnl AC_MSG_ERROR(Need some Perl modules)) dnl dnl @category InstalledPackages dnl @author Marco Gomes dnl @author Ruben Fonseca dnl @version 2006-05-12 dnl @license AllPermissive 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