Imported Upstream version 2.5.11
[libapache-mod-security.git] / apache2 / build / find_lua.m4
1 dnl Check for LUA Libraries
2 dnl CHECK_LUA(ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND])
3 dnl Sets:
4 dnl  LUA_CFLAGS
5 dnl  LUA_LIBS
6
7 LUA_CONFIG=""
8 LUA_CFLAGS=""
9 LUA_LIBS=""
10 LUA_CONFIG=pkg-config
11 LUA_PKGNAMES="lua5.1 lua-5.1 lua_5.1 lua-51 lua_51 lua51 lua5 lua"
12 LUA_SONAMES="so la sl dll dylib"
13
14 AC_DEFUN([CHECK_LUA],
15 [dnl
16
17 AC_ARG_WITH(
18     lua,
19     [AC_HELP_STRING([--with-lua=PATH],[Path to lua prefix or config script])],
20     [test_paths="${with_lua}"],
21     [test_paths="/usr/local/liblua /usr/local/lua /usr/local /opt/liblua /opt/lua /opt /usr"; ])
22
23 AC_MSG_CHECKING([for liblua config script])
24
25 for x in ${test_paths}; do
26     dnl # Determine if the script was specified and use it directly
27     if test ! -d "$x" -a -e "$x"; then
28         LUA_CONFIG=$x
29         break
30     fi
31
32     dnl # Try known config script names/locations
33     for y in $LUA_CONFIG; do
34         if test -e "${x}/bin/${y}"; then
35             LUA_CONFIG="${x}/bin/${y}"
36             lua_config="${LUA_CONFIG}"
37             break
38         elif test -e "${x}/${y}"; then
39             LUA_CONFIG="${x}/${y}"
40             lua_config="${LUA_CONFIG}"
41             break
42         fi
43     done
44     if test -n "${lua_config}"; then
45         break
46     fi
47 done
48
49 dnl # Try known package names
50 if test -n "${LUA_CONFIG}"; then
51     LUA_PKGNAME=""
52     for x in ${LUA_PKGNAMES}; do
53         if ${LUA_CONFIG} --exists ${x}; then
54             LUA_PKGNAME="$x"
55             break
56         fi
57     done
58 fi
59
60 if test -n "${LUA_PKGNAME}"; then
61     AC_MSG_RESULT([${LUA_CONFIG}])
62     LUA_CFLAGS="`${LUA_CONFIG} ${LUA_PKGNAME} --cflags`"
63     if test "$verbose_output" -eq 1; then AC_MSG_NOTICE(lua CFLAGS: $LUA_CFLAGS); fi
64     LUA_LIBS="`${LUA_CONFIG} ${LUA_PKGNAME} --libs`"
65     if test "$verbose_output" -eq 1; then AC_MSG_NOTICE(lua LIBS: $LUA_LIBS); fi
66     CFLAGS=$save_CFLAGS
67     LDFLAGS=$save_LDFLAGS
68 else
69     AC_MSG_RESULT([no])
70
71     dnl Hack to just try to find the lib and include
72     AC_MSG_CHECKING([for lua install])
73     for x in ${test_paths}; do
74         for y in ${LUA_SONAMES}; do
75             if test -e "${x}/liblua5.1.${y}"; then
76                 lua_lib_path="${x}"
77                 lua_lib_name="lua5.1"
78                 break
79             elif test -e "${x}/lib/liblua5.1.${y}"; then
80                 lua_lib_path="${x}/lib"
81                 lua_lib_name="lua5.1"
82                 break
83             elif test -e "${x}/lib64/liblua5.1.${y}"; then
84                 lua_lib_path="${x}/lib64"
85                 lua_lib_name="lua5.1"
86                 break
87             elif test -e "${x}/lib32/liblua5.1.${y}"; then
88                 lua_lib_path="${x}/lib32"
89                 lua_lib_name="lua5.1"
90                 break
91             elif test -e "${x}/liblua51.${y}"; then
92                 lua_lib_path="${x}"
93                 lua_lib_name="lua51"
94                 break
95             elif test -e "${x}/lib/liblua51.${y}"; then
96                 lua_lib_path="${x}/lib"
97                 lua_lib_name="lua51"
98                 break
99             elif test -e "${x}/lib64/liblua51.${y}"; then
100                 lua_lib_path="${x}/lib64"
101                 lua_lib_name="lua51"
102                 break
103             elif test -e "${x}/lib32/liblua51.${y}"; then
104                 lua_lib_path="${x}/lib32"
105                 lua_lib_name="lua51"
106                 break
107             elif test -e "${x}/liblua.${y}"; then
108                 lua_lib_path="${x}"
109                 lua_lib_name="lua"
110                 break
111             elif test -e "${x}/lib/liblua.${y}"; then
112                 lua_lib_path="${x}/lib"
113                 lua_lib_name="lua"
114                 break
115             elif test -e "${x}/lib64/liblua.${y}"; then
116                 lua_lib_path="${x}/lib64"
117                 lua_lib_name="lua"
118                 break
119             elif test -e "${x}/lib32/liblua.${y}"; then
120                 lua_lib_path="${x}/lib32"
121                 lua_lib_name="lua"
122                 break
123             else
124                 lua_lib_path=""
125                 lua_lib_name=""
126             fi
127         done
128         if test -n "$lua_lib_path"; then
129             break
130         fi
131     done
132     for x in ${test_paths}; do
133         if test -e "${x}/include/lua.h"; then
134             lua_inc_path="${x}/include"
135             break
136         elif test -e "${x}/lua.h"; then
137             lua_inc_path="${x}"
138             break
139         fi
140
141         dnl # Check some sub-paths as well
142         for lua_pkg_name in ${lua_lib_name} ${LUA_PKGNAMES}; do
143             if test -e "${x}/include/${lua_pkg_name}/lua.h"; then
144                 lua_inc_path="${x}/include"
145                 break
146             elif test -e "${x}/${lua_pkg_name}/lua.h"; then
147                 lua_inc_path="${x}"
148                 break
149             else
150                 lua_inc_path=""
151             fi
152         done
153         if test -n "$lua_inc_path"; then
154             break
155         fi
156     done
157     if test -n "${lua_lib_path}" -a -n "${lua_inc_path}"; then
158         LUA_CONFIG=""
159         AC_MSG_RESULT([${lua_lib_path} ${lua_inc_path}])
160         LUA_CFLAGS="-I${lua_inc_path}"
161         LUA_LIBS="-L${lua_lib_path} -l${lua_lib_name}"
162         CFLAGS=$save_CFLAGS
163         LDFLAGS=$save_LDFLAGS
164     else
165         AC_MSG_RESULT([no])
166     fi
167 fi
168
169 if test -n "${LUA_LIBS}"; then
170     LUA_CFLAGS="-DWITH_LUA ${LUA_CFLAGS}"
171 fi
172
173 AC_SUBST(LUA_LIBS)
174 AC_SUBST(LUA_CFLAGS)
175
176 if test "${with_path}" != "no"; then
177     if test -z "${LUA_LIBS}"; then
178       ifelse([$2], , AC_MSG_NOTICE([optional lua library not found]), $2)
179     else
180       AC_MSG_NOTICE([using '${LUA_LIBS}' for lua Library])
181       ifelse([$1], , , $1) 
182     fi 
183 fi
184 ])