~gearman-developers/gearman-interface/gearman-interface

« back to all changes in this revision

Viewing changes to m4/ac_pkg_swig.m4

  • Committer: Monty Taylor
  • Date: 2009-07-21 20:41:39 UTC
  • Revision ID: mordred@inaugust.com-20090721204139-rcyse999id1lbu1h
Python worker initial import.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl @synopsis AC_PROG_SWIG([major.minor.micro])
 
2
dnl
 
3
dnl This macro searches for a SWIG installation on your system. If
 
4
dnl found you should call SWIG via $(SWIG). You can use the optional
 
5
dnl first argument to check if the version of the available SWIG is
 
6
dnl greater than or equal to the value of the argument. It should have
 
7
dnl the format: N[.N[.N]] (N is a number between 0 and 999. Only the
 
8
dnl first N is mandatory.)
 
9
dnl
 
10
dnl If the version argument is given (e.g. 1.3.17), AC_PROG_SWIG checks
 
11
dnl that the swig package is this version number or higher.
 
12
dnl
 
13
dnl In configure.in, use as:
 
14
dnl
 
15
dnl             AC_PROG_SWIG(1.3.17)
 
16
dnl             SWIG_ENABLE_CXX
 
17
dnl             SWIG_MULTI_MODULE_SUPPORT
 
18
dnl             SWIG_PYTHON
 
19
dnl
 
20
dnl @category InstalledPackages
 
21
dnl @author Sebastian Huber <sebastian-huber@web.de>
 
22
dnl @author Alan W. Irwin <irwin@beluga.phys.uvic.ca>
 
23
dnl @author Rafael Laboissiere <rafael@laboissiere.net>
 
24
dnl @author Andrew Collier <abcollier@yahoo.com>
 
25
dnl @version 2004-09-20
 
26
dnl @license GPLWithACException
 
27
 
 
28
AC_DEFUN([AC_PROG_SWIG],[
 
29
        AC_PATH_PROG([SWIG],[swig])
 
30
        if test -z "$SWIG" ; then
 
31
                AC_MSG_ERROR([cannot find 'swig' program installed])
 
32
                SWIG=no
 
33
        elif test -n "$1" ; then
 
34
                AC_MSG_CHECKING([for SWIG version])
 
35
                [swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`]
 
36
                AC_MSG_RESULT([$swig_version])
 
37
                if test -n "$swig_version" ; then
 
38
                        # Calculate the required version number components
 
39
                        [required=$1]
 
40
                        [required_major=`echo $required | sed 's/[^0-9].*//'`]
 
41
                        if test -z "$required_major" ; then
 
42
                                [required_major=0]
 
43
                        fi
 
44
                        [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
 
45
                        [required_minor=`echo $required | sed 's/[^0-9].*//'`]
 
46
                        if test -z "$required_minor" ; then
 
47
                                [required_minor=0]
 
48
                        fi
 
49
                        [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
 
50
                        [required_patch=`echo $required | sed 's/[^0-9].*//'`]
 
51
                        if test -z "$required_patch" ; then
 
52
                                [required_patch=0]
 
53
                        fi
 
54
                        # Calculate the available version number components
 
55
                        [available=$swig_version]
 
56
                        [available_major=`echo $available | sed 's/[^0-9].*//'`]
 
57
                        if test -z "$available_major" ; then
 
58
                                [available_major=0]
 
59
                        fi
 
60
                        [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
 
61
                        [available_minor=`echo $available | sed 's/[^0-9].*//'`]
 
62
                        if test -z "$available_minor" ; then
 
63
                                [available_minor=0]
 
64
                        fi
 
65
                        [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
 
66
                        [available_patch=`echo $available | sed 's/[^0-9].*//'`]
 
67
                        if test -z "$available_patch" ; then
 
68
                                [available_patch=0]
 
69
                        fi
 
70
                        if test $available_major -ne $required_major \
 
71
                                -o $available_minor -ne $required_minor \
 
72
                                -o $available_patch -lt $required_patch ; then
 
73
                                AC_MSG_ERROR([SWIG version >= $1 is required.])
 
74
                                SWIG=no
 
75
                        else
 
76
                                AC_MSG_NOTICE([SWIG executable is '$SWIG'])
 
77
                                SWIG_LIB=`$SWIG -swiglib`
 
78
                                AC_MSG_NOTICE([SWIG library directory is '$SWIG_LIB'])
 
79
                        fi
 
80
                        # Test for the PHP sefgault bug
 
81
                        if test $available_major -ne 1 \
 
82
                                -o $available_minor -lt 3 \
 
83
                                -o $available_patch -lt 33 ; then
 
84
                                SWIG_CAN_BUILD_PHP=no
 
85
                        else
 
86
                                SWIG_CAN_BUILD_PHP=yes
 
87
                        fi
 
88
                        AC_SUBST([SWIG_CAN_BUILD_PHP])
 
89
                else
 
90
                        AC_MSG_ERROR([cannot determine SWIG version.])
 
91
                        SWIG=no
 
92
                fi
 
93
        fi
 
94
        AC_SUBST([SWIG_LIB])
 
95
])
 
96
 
 
97
# SWIG_ENABLE_CXX()
 
98
#
 
99
# Enable SWIG C++ support.  This affects all invocations of $(SWIG).
 
100
AC_DEFUN([SWIG_ENABLE_CXX],[
 
101
        AC_REQUIRE([AC_PROG_SWIG])
 
102
        AC_REQUIRE([AC_PROG_CXX])
 
103
        SWIG="$SWIG -c++"
 
104
])
 
105
 
 
106
# SWIG_MULTI_MODULE_SUPPORT()
 
107
#
 
108
# Enable support for multiple modules.  This effects all invocations
 
109
# of $(SWIG).  You have to link all generated modules against the
 
110
# appropriate SWIG runtime library.  If you want to build Python
 
111
# modules for example, use the SWIG_PYTHON() macro and link the
 
112
# modules against $(SWIG_PYTHON_LIBS).
 
113
#
 
114
AC_DEFUN([SWIG_MULTI_MODULE_SUPPORT],[
 
115
        AC_REQUIRE([AC_PROG_SWIG])
 
116
        SWIG="$SWIG -noruntime"
 
117
])
 
118
 
 
119
# SWIG_PYTHON([use-shadow-classes = {no, yes}])
 
120
#
 
121
# Checks for Python and provides the $(SWIG_PYTHON_CPPFLAGS),
 
122
# and $(SWIG_PYTHON_OPT) output variables.
 
123
#
 
124
# $(SWIG_PYTHON_OPT) contains all necessary SWIG options to generate
 
125
# code for Python.  Shadow classes are enabled unless the value of the
 
126
# optional first argument is exactly 'no'.  If you need multi module
 
127
# support (provided by the SWIG_MULTI_MODULE_SUPPORT() macro) use
 
128
# $(SWIG_PYTHON_LIBS) to link against the appropriate library.  It
 
129
# contains the SWIG Python runtime library that is needed by the type
 
130
# check system for example.
 
131
AC_DEFUN([SWIG_PYTHON],[
 
132
        AC_REQUIRE([AC_PROG_SWIG])
 
133
        AC_REQUIRE([AC_PYTHON_DEVEL])
 
134
        test "x$1" != "xno" || swig_shadow=" -noproxy"
 
135
        AC_SUBST([SWIG_PYTHON_OPT],[-python$swig_shadow])
 
136
        AC_SUBST([SWIG_PYTHON_CPPFLAGS],[$PYTHON_CPPFLAGS])
 
137
])
 
138
 
 
139
 
 
140
dnl @synopsis AC_LIB_WAD
 
141
dnl
 
142
dnl This macro searches for installed WAD library.
 
143
dnl
 
144
AC_DEFUN([AC_LIB_WAD],
 
145
[
 
146
        AC_REQUIRE([AC_PYTHON_DEVEL])
 
147
        AC_ARG_ENABLE(wad,
 
148
        AS_HELP_STRING([--enable-wad],[enable wad module]),
 
149
        [
 
150
                case "${enableval}" in
 
151
                        no)     ;;
 
152
                        *)      if test "x${enableval}" = xyes;
 
153
                                then
 
154
                                        check_wad="yes"
 
155
                                fi ;;
 
156
                esac
 
157
        ], [])
 
158
 
 
159
        if test -n "$check_wad";
 
160
        then
 
161
                AC_CHECK_LIB(wadpy, _init, [WADPY=-lwadpy], [], $PYTHON_LDFLAGS $PYTHON_EXTRA_LIBS)
 
162
                AC_SUBST(WADPY)
 
163
        fi
 
164
])