Download M4 Source Macro History Category Index

ac_perl_module_version

Synopsis

AC_PERL_MODULE_VERSION([MODULE VERSION], [ACTION-IF-TRUE], [ACTION-IF-FALSE])

Description

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))

Authors

Marco Gomes <mpglesi@gmail.com> and Ruben Fonseca <fonseka@gmail.com>.

Last Modified

2006-05-12

M4 Source Code

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

License

Copyright © 2006 Marco Gomes <mpglesi@gmail.com>
Copyright © 2006 Ruben Fonseca <fonseka@gmail.com>

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.