From 5263887ac3326e9428dd5ee765ef45b4fb5d818b Mon Sep 17 00:00:00 2001 From: TingPing Date: Wed, 22 Apr 2015 22:41:02 -0400 Subject: configure: Simplify perl tests --- m4/ax_perl_ext_flags.m4 | 116 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 m4/ax_perl_ext_flags.m4 (limited to 'm4/ax_perl_ext_flags.m4') diff --git a/m4/ax_perl_ext_flags.m4 b/m4/ax_perl_ext_flags.m4 new file mode 100644 index 00000000..03f16435 --- /dev/null +++ b/m4/ax_perl_ext_flags.m4 @@ -0,0 +1,116 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_perl_ext_flags.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PERL_EXT_FLAGS([CFLAGS-VARIABLE], [LDFLAGS-VARIABLE], [EXTRA-MODULES]) +# AX_PERL_EXT_CFLAGS([CFLAGS-VARIABLE]) +# AX_PERL_EXT_LDFLAGS([LDFLAGS-VARIABLE], [EXTRA-MODULES]) +# +# DESCRIPTION +# +# Fetches the linker flags and C compiler flags for compiling and linking +# programs that embed a Perl interpreter. If the EXTRA-MODULES argument is +# submitted, it is a space separated list of extra modules to link. The +# flags will be stored in the provided variables. +# +# Examples: +# +# AX_PERL_EXT_FLAGS([PERLXS_CFLAGS], [PERLXS_LDFLAGS]) +# AC_SUBST([PERLXS_CFLAGS]) +# AC_SUBST([PERLXS_LDFLAGS]) +# +# AX_PERL_EXT_CFLAGS([PERLXS_CFLAGS]) +# AC_SUBST([PERLXS_CFLAGS]) +# +# AX_PERL_EXT_LDFLAGS([PERLXS_LDFLAGS], [-std Socket]) +# +# LICENSE +# +# Copyright (c) 2009 Mats Kindahl of Sun Microsystems +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +#serial 5 + +AC_DEFUN([AX_PERL_EXT_CFLAGS], +[AC_CHECK_PROG(PERL,perl,perl) + _AX_PERL_EXT_MODULE_CHECK([ExtUtils::Embed], [have_embed=yes], + [have_embed=no]) + AS_IF([test $have_embed = no], + AC_MSG_ERROR([Require ExtUtils::Embed to proceed])) + _AX_PERL_EXT_EMBED_CHECK([$1],[ccopts]) +]) + + +AC_DEFUN([AX_PERL_EXT_LDFLAGS], +[AC_CHECK_PROG(PERL,perl,perl) + _AX_PERL_EXT_MODULE_CHECK([ExtUtils::Embed], [have_embed=yes], + [have_embed=no]) + AS_IF([test $have_embed = no], + AC_MSG_ERROR([Require ExtUtils::Embed to proceed])) + _AX_PERL_EXT_EMBED_CHECK([$1],[ldopts],[$2]) +]) + + +AC_DEFUN([AX_PERL_EXT_FLAGS], +[AC_CHECK_PROG(PERL,perl,perl) + _AX_PERL_EXT_MODULE_CHECK([ExtUtils::Embed], [have_embed=yes], + [have_embed=no]) + AS_IF([test $have_embed = no], + AC_MSG_ERROR([Require ExtUtils::Embed to proceed])) + _AX_PERL_EXT_EMBED_CHECK([$1],[ccopts]) + _AX_PERL_EXT_EMBED_CHECK([$2],[ldopts],[$3]) +]) + + +dnl _AX_PERL_EXT_MODULE_CHECK(MODULE-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) +dnl +dnl Check for the existance of the perl module given by MODULE-NAME. +dnl +AC_DEFUN([_AX_PERL_EXT_MODULE_CHECK], +[AC_MSG_CHECKING([for perl module $1]) + $PERL "-M$1" -e exit > /dev/null 2>&1 + AS_IF([test $? -eq 0], + [AC_MSG_RESULT(yes) + $2], + [AC_MSG_RESULT(no) + $3]) +]) + +dnl _AX_PERL_EXT_EMBED_CHECK(VARIABLE, COMMAND, [EXTRA-FLAGS]) Use +dnl +dnl ExtUtils::Embed fetch flags for embedding Perl in a C/C++ +dnl application +dnl +AC_DEFUN([_AX_PERL_EXT_EMBED_CHECK], +[AC_MSG_CHECKING([for perl $2 embed flags]) + ax_c_perlxs_extras="$3" + $1=`$PERL -MExtUtils::Embed -e $2 ${ax_c_perlxs_extras:+"-- $3"}` + AC_MSG_RESULT($$1) +]) -- cgit 1.4.1