1# ===========================================================================
2#   https://www.gnu.org/software/autoconf-archive/ax_prog_perl_modules.html
3# ===========================================================================
4#
5# SYNOPSIS
6#
7#   AX_PROG_PERL_MODULES([MODULES], [ACTION-IF-TRUE], [ACTION-IF-FALSE])
8#
9# DESCRIPTION
10#
11#   Checks to see if the given perl modules are available. If true the shell
12#   commands in ACTION-IF-TRUE are executed. If not the shell commands in
13#   ACTION-IF-FALSE are run. Note if $PERL is not set (for example by
14#   calling AC_CHECK_PROG, or AC_PATH_PROG), AC_CHECK_PROG(PERL, perl, perl)
15#   will be run.
16#
17#   MODULES is a space separated list of module names. To check for a
18#   minimum version of a module, append the version number to the module
19#   name, separated by an equals sign.
20#
21#   Example:
22#
23#     AX_PROG_PERL_MODULES( Text::Wrap Net::LDAP=1.0.3, ,
24#                           AC_MSG_WARN(Need some Perl modules)
25#
26# LICENSE
27#
28#   Copyright (c) 2009 Dean Povey <povey@wedgetail.com>
29#
30#   Copying and distribution of this file, with or without modification, are
31#   permitted in any medium without royalty provided the copyright notice
32#   and this notice are preserved. This file is offered as-is, without any
33#   warranty.
34
35#serial 8
36
37AU_ALIAS([AC_PROG_PERL_MODULES], [AX_PROG_PERL_MODULES])
38AC_DEFUN([AX_PROG_PERL_MODULES],[dnl
39
40m4_define([ax_perl_modules])
41m4_foreach([ax_perl_module], m4_split(m4_normalize([$1])),
42	  [
43	   m4_append([ax_perl_modules],
44		     [']m4_bpatsubst(ax_perl_module,=,[ ])[' ])
45          ])
46
47# Make sure we have perl
48if test -z "$PERL"; then
49AC_CHECK_PROG(PERL,perl,perl)
50fi
51
52if test "x$PERL" != x; then
53  ax_perl_modules_failed=0
54  for ax_perl_module in ax_perl_modules; do
55    AC_MSG_CHECKING(for perl module $ax_perl_module)
56
57    # Would be nice to log result here, but can't rely on autoconf internals
58    $PERL -e "use $ax_perl_module; exit" > /dev/null 2>&1
59    if test $? -ne 0; then
60      AC_MSG_RESULT(no);
61      ax_perl_modules_failed=1
62   else
63      AC_MSG_RESULT(ok);
64    fi
65  done
66
67  # Run optional shell commands
68  if test "$ax_perl_modules_failed" = 0; then
69    :
70    $2
71  else
72    :
73    $3
74  fi
75else
76  AC_MSG_WARN(could not find perl)
77fi])dnl
78