Re: Why is this perl checking code not working for me?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Dr. David Kirkby" <david.kirkby@xxxxxxxxxx> writes:

> I'm trying to check if the version of perl is at least x.y.z
>
> I found a macro with this syntax.
>
> AX_PROG_PERL_VERSION([VERSION],[ACTION-IF-TRUE],[ACTION-IF-FALSE])
>
> http://www.nongnu.org/autoconf-archive/ax_prog_perl_version.html
>
> The documentation says one needs to run AC_CHECK_PROG or AC_PATH_PROG
> first, so $PERL is set to the path to perl. But it keeps failing on me:
>
> AC_PATH_PROG([PERL],[perl])
> AX_PROG_PERL_VERSION([5.8.0],[],[])

That macro is using a questionable technique to accomplish this (parsing
the output of perl -v and then relying on AX_COMPARE_VERSION).  Here's a
much simpler macro that accomplishes the same thing:

AC_DEFUN([AX_PROG_PERL_VERSION],
[AC_CACHE_CHECK([for Perl version $1 or later], [ax_cv_prog_perl_version],
    [AS_IF(["$PERL" -e 'require $1;' >/dev/null 2>&1], [$1], [$2])])])

This uses Perl's built-in require command, which supports 5.8.0-style
version numbers and always does the right ordering check.  (Although you
may want to use 5.008 for backward compatibility with pre-5.6 versions of
Perl.)

There's some room for improvement in that check since the cache variable
used doesn't vary based on the version number of Perl desired, so it won't
work properly if invoked more than once with different versions.  This is
based on a macro that I'm currently using, but I rewrote it a bit to use a
more modern idiom and haven't tested the version above, so it's possible
there are stupid typos.

-- 
Russ Allbery (rra@xxxxxxxxxxxx)             <http://www.eyrie.org/~eagle/>


_______________________________________________
Autoconf mailing list
Autoconf@xxxxxxx
http://lists.gnu.org/mailman/listinfo/autoconf

[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux