--- /dev/null
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl Licensed to the Apache Software Foundation (ASF) under one or more
+dnl contributor license agreements. See the NOTICE file distributed with
+dnl this work for additional information regarding copyright ownership.
+dnl The ASF licenses this file to You under the Apache License, Version 2.0
+dnl (the "License"); you may not use this file except in compliance with
+dnl the License. You may obtain a copy of the License at
+dnl
+dnl http://www.apache.org/licenses/LICENSE-2.0
+dnl
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
+dnl
+dnl luajit.m4 Trafficserver's LuaJIT autoconf macros
+dnl
+
+dnl
+dnl TS_CHECK_LUA: look for LuaJIT libraries and headers. Fallback on Lua if LuaJIt not found
+dnl
+AC_DEFUN([TS_CHECK_LUA], [
+ PKG_CHECK_MODULES([LUAJIT], [luajit], [have_luajit=yes], [have_luajit=no])
+ PKG_CHECK_MODULES([LUALIB], [lua5.2], [have_lua=yes], [have_lua=no])
+ AS_IF(
+ [ test "x${have_luajit}" = "xyes" ],
+ [
+ AC_SUBST([LUA_LIBS],[$LUAJIT_LIBS])
+ AC_SUBST([LUA_CFLAGS],[$LUAJIT_CFLAGS])
+ AC_SUBST([LUA_CPPFLAGS],[$LUAJIT_CFLAGS])
+ AC_SUBST([LUA_LDFLAGS],[$LUAJIT_LDFLAGS])
+ ],
+ [
+ AS_IF(
+ [ test "x${have_lua}" = "xyes" ],
+ [
+ AC_SUBST([LUA_LIBS],[$LUALIB_LIBS])
+ AC_SUBST([LUA_CFLAGS],[$LUALIB_CFLAGS])
+ AC_SUBST([LUA_CPPFLAGS],[$LUALIB_CFLAGS])
+ AC_SUBST([LUA_LDFLAGS],[$LUALIB_LDFLAGS])
+ ],
+ [ AC_MSG_ERROR([Neither LuaJIT nor Lua package available]) ]
+ )
+ ]
+ )
+])
AM_CXXFLAGS
AM_CFLAGS
AM_CPPFLAGS
-LUAJIT_CFLAGS
+LUA_CFLAGS
BUILD_REMAP_STATS_PLUGIN_FALSE
BUILD_REMAP_STATS_PLUGIN_TRUE
has_in6_is_addr_unspecified
BUILD_TRAFFIC_TOP_TRUE
BUILD_HTTP_LOAD_FALSE
BUILD_HTTP_LOAD_TRUE
-LUAJIT_CPPFLAGS
-LUAJIT_LDFLAGS
+LUA_CPPFLAGS
+LUA_LDFLAGS
LIBREADLINE
has_tcmalloc
jemalloch
fi
- if test "x$LUAJIT_LDFLAGS" = "x"; then
- test "x$verbose" = "xyes" && echo " setting LUAJIT_LDFLAGS to \"-m64\""
- LUAJIT_LDFLAGS="-m64"
+ if test "x$LUA_LDFLAGS" = "x"; then
+ test "x$verbose" = "xyes" && echo " setting LUA_LDFLAGS to \"-m64\""
+ LUA_LDFLAGS="-m64"
else
ats_addto_bugger="-m64"
for i in $ats_addto_bugger; do
ats_addto_duplicate="0"
- for j in $LUAJIT_LDFLAGS; do
+ for j in $LUA_LDFLAGS; do
if test "x$i" = "x$j"; then
ats_addto_duplicate="1"
break
fi
done
if test $ats_addto_duplicate = "0"; then
- test "x$verbose" = "xyes" && echo " adding \"$i\" to LUAJIT_LDFLAGS"
- LUAJIT_LDFLAGS="$LUAJIT_LDFLAGS $i"
+ test "x$verbose" = "xyes" && echo " adding \"$i\" to LUA_LDFLAGS"
+ LUA_LDFLAGS="$LUA_LDFLAGS $i"
fi
done
fi
debug_opt="-ggdb3 $common_opt -Qunused-arguments"
release_opt="-g $common_opt $optimizing_flags -fno-strict-aliasing -Qunused-arguments"
cxx_opt="-Wno-invalid-offsetof"
- luajit_cflags="-Wno-parentheses-equality -Wno-tautological-compare -analyzer-disable-all-checks -Wno-varargs"
fi
debug_opt="-g $common_opt"
release_opt="-g $common_opt $optimizing_flags -fno-strict-aliasing"
cxx_opt="-Wno-invalid-offsetof"
- luajit_cflags="-Wno-parentheses-equality -Wno-tautological-compare -Wno-varargs"
else
debug_opt="-ggdb3 $common_opt"
release_opt="-g $common_opt $optimizing_flags -fno-strict-aliasing"
cxx_opt="-Wno-invalid-offsetof"
- luajit_cflags="-Wno-parentheses-equality -Wno-tautological-compare -Wno-varargs"
fi
fi
-# On Darwin LuaJIT requires magic link options, otherwise it will crash in luaL_openlibs() at startup. See
-# http://luajit.org/install.html.
-case $host_os_def in
- darwin)
- LUAJIT_LDFLAGS="-Wl,-pagezero_size,10000 -Wl,-image_base,100000000"
- ;;
-esac
-
-# Flags for building and linking against our internal copy of LuaJIT.
-
-LUAJIT_CPPFLAGS='-I$(abs_top_srcdir)/lib/luajit/src'
-
-
# We should be able to build http_load if epoll(2) is available.
if test x"$ac_cv_func_epoll_ctl" = x"yes"; then
BUILD_HTTP_LOAD_TRUE=
# can strip the coverage flags from Lua while keeping them by
# default everywhere else.
- if test "x$LUAJIT_CFLAGS" = "x"; then
- test "x$verbose" = "xyes" && echo " setting LUAJIT_CFLAGS to \"$CFLAGS $luajit_cflags\""
- LUAJIT_CFLAGS="$CFLAGS $luajit_cflags"
+ if test "x$LUA_CFLAGS" = "x"; then
+ test "x$verbose" = "xyes" && echo " setting LUA_CFLAGS to \"$CFLAGS $luajit_cflags\""
+ LUA_CFLAGS="$CFLAGS $luajit_cflags"
else
ats_addto_bugger="$CFLAGS $luajit_cflags"
for i in $ats_addto_bugger; do
ats_addto_duplicate="0"
- for j in $LUAJIT_CFLAGS; do
+ for j in $LUA_CFLAGS; do
if test "x$i" = "x$j"; then
ats_addto_duplicate="1"
break
fi
done
if test $ats_addto_duplicate = "0"; then
- test "x$verbose" = "xyes" && echo " adding \"$i\" to LUAJIT_CFLAGS"
- LUAJIT_CFLAGS="$LUAJIT_CFLAGS $i"
+ test "x$verbose" = "xyes" && echo " adding \"$i\" to LUA_CFLAGS"
+ LUA_CFLAGS="$LUA_CFLAGS $i"
fi
done
fi
- if test "x$LUAJIT_CFLAGS" = "x"-fsanitize=address""; then
- test "x$verbose" = "xyes" && echo " nulling LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=""
+ if test "x$LUA_CFLAGS" = "x"-fsanitize=address""; then
+ test "x$verbose" = "xyes" && echo " nulling LUA_CFLAGS"
+ LUA_CFLAGS=""
else
ats_new_bugger=""
ats_removed=0
- for i in $LUAJIT_CFLAGS; do
+ for i in $LUA_CFLAGS; do
if test "x$i" != "x"-fsanitize=address""; then
ats_new_bugger="$ats_new_bugger $i"
else
fi
done
if test $ats_removed = "1"; then
- test "x$verbose" = "xyes" && echo " removed \""-fsanitize=address"\" from LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=$ats_new_bugger
+ test "x$verbose" = "xyes" && echo " removed \""-fsanitize=address"\" from LUA_CFLAGS"
+ LUA_CFLAGS=$ats_new_bugger
fi
fi
- if test "x$LUAJIT_CFLAGS" = "x"-fsanitize=thread""; then
- test "x$verbose" = "xyes" && echo " nulling LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=""
+ if test "x$LUA_CFLAGS" = "x"-fsanitize=thread""; then
+ test "x$verbose" = "xyes" && echo " nulling LUA_CFLAGS"
+ LUA_CFLAGS=""
else
ats_new_bugger=""
ats_removed=0
- for i in $LUAJIT_CFLAGS; do
+ for i in $LUA_CFLAGS; do
if test "x$i" != "x"-fsanitize=thread""; then
ats_new_bugger="$ats_new_bugger $i"
else
fi
done
if test $ats_removed = "1"; then
- test "x$verbose" = "xyes" && echo " removed \""-fsanitize=thread"\" from LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=$ats_new_bugger
+ test "x$verbose" = "xyes" && echo " removed \""-fsanitize=thread"\" from LUA_CFLAGS"
+ LUA_CFLAGS=$ats_new_bugger
fi
fi
- if test "x$LUAJIT_CFLAGS" = "x"-fsanitize=memory""; then
- test "x$verbose" = "xyes" && echo " nulling LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=""
+ if test "x$LUA_CFLAGS" = "x"-fsanitize=memory""; then
+ test "x$verbose" = "xyes" && echo " nulling LUA_CFLAGS"
+ LUA_CFLAGS=""
else
ats_new_bugger=""
ats_removed=0
- for i in $LUAJIT_CFLAGS; do
+ for i in $LUA_CFLAGS; do
if test "x$i" != "x"-fsanitize=memory""; then
ats_new_bugger="$ats_new_bugger $i"
else
fi
done
if test $ats_removed = "1"; then
- test "x$verbose" = "xyes" && echo " removed \""-fsanitize=memory"\" from LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=$ats_new_bugger
+ test "x$verbose" = "xyes" && echo " removed \""-fsanitize=memory"\" from LUA_CFLAGS"
+ LUA_CFLAGS=$ats_new_bugger
fi
fi
- if test "x$LUAJIT_CFLAGS" = "x"-fprofile-instr-generate""; then
- test "x$verbose" = "xyes" && echo " nulling LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=""
+ if test "x$LUA_CFLAGS" = "x"-fprofile-instr-generate""; then
+ test "x$verbose" = "xyes" && echo " nulling LUA_CFLAGS"
+ LUA_CFLAGS=""
else
ats_new_bugger=""
ats_removed=0
- for i in $LUAJIT_CFLAGS; do
+ for i in $LUA_CFLAGS; do
if test "x$i" != "x"-fprofile-instr-generate""; then
ats_new_bugger="$ats_new_bugger $i"
else
fi
done
if test $ats_removed = "1"; then
- test "x$verbose" = "xyes" && echo " removed \""-fprofile-instr-generate"\" from LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=$ats_new_bugger
+ test "x$verbose" = "xyes" && echo " removed \""-fprofile-instr-generate"\" from LUA_CFLAGS"
+ LUA_CFLAGS=$ats_new_bugger
fi
fi
- if test "x$LUAJIT_CFLAGS" = "x"-fcoverage-mapping""; then
- test "x$verbose" = "xyes" && echo " nulling LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=""
+ if test "x$LUA_CFLAGS" = "x"-fcoverage-mapping""; then
+ test "x$verbose" = "xyes" && echo " nulling LUA_CFLAGS"
+ LUA_CFLAGS=""
else
ats_new_bugger=""
ats_removed=0
- for i in $LUAJIT_CFLAGS; do
+ for i in $LUA_CFLAGS; do
if test "x$i" != "x"-fcoverage-mapping""; then
ats_new_bugger="$ats_new_bugger $i"
else
fi
done
if test $ats_removed = "1"; then
- test "x$verbose" = "xyes" && echo " removed \""-fcoverage-mapping"\" from LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=$ats_new_bugger
+ test "x$verbose" = "xyes" && echo " removed \""-fcoverage-mapping"\" from LUA_CFLAGS"
+ LUA_CFLAGS=$ats_new_bugger
fi
fi
- if test "x$LUAJIT_CFLAGS" = "x"--coverage""; then
- test "x$verbose" = "xyes" && echo " nulling LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=""
+ if test "x$LUA_CFLAGS" = "x"--coverage""; then
+ test "x$verbose" = "xyes" && echo " nulling LUA_CFLAGS"
+ LUA_CFLAGS=""
else
ats_new_bugger=""
ats_removed=0
- for i in $LUAJIT_CFLAGS; do
+ for i in $LUA_CFLAGS; do
if test "x$i" != "x"--coverage""; then
ats_new_bugger="$ats_new_bugger $i"
else
fi
done
if test $ats_removed = "1"; then
- test "x$verbose" = "xyes" && echo " removed \""--coverage"\" from LUAJIT_CFLAGS"
- LUAJIT_CFLAGS=$ats_new_bugger
+ test "x$verbose" = "xyes" && echo " removed \""--coverage"\" from LUA_CFLAGS"
+ LUA_CFLAGS=$ats_new_bugger
fi
fi
SHARED_LDFLAGS: $SHARED_LDFLAGS
OPENSSL_LDFLAGS: $OPENSSL_LDFLAGS
OPENSSL_INCLUDES: $OPENSSL_INCLUDES
- LUAJIT_CFLAGS: $LUAJIT_CFLAGS
- LUAJIT_CPPFLAGS: $LUAJIT_CPPFLAGS
- LUAJIT_LDFLAGS: $LUAJIT_LDFLAGS
+ LUA_CFLAGS: $LUA_CFLAGS
+ LUA_CPPFLAGS: $LUA_CPPFLAGS
+ LUA_LDFLAGS: $LUA_LDFLAGS
" >&5
$as_echo "$as_me: Build option summary:
CC: $CC
SHARED_LDFLAGS: $SHARED_LDFLAGS
OPENSSL_LDFLAGS: $OPENSSL_LDFLAGS
OPENSSL_INCLUDES: $OPENSSL_INCLUDES
- LUAJIT_CFLAGS: $LUAJIT_CFLAGS
- LUAJIT_CPPFLAGS: $LUAJIT_CPPFLAGS
- LUAJIT_LDFLAGS: $LUAJIT_LDFLAGS
+ LUA_CFLAGS: $LUA_CFLAGS
+ LUA_CPPFLAGS: $LUA_CPPFLAGS
+ LUA_LDFLAGS: $LUA_LDFLAGS
" >&6;}
*amd64*)
TS_ADDTO(AM_CFLAGS, [-m64])
TS_ADDTO(AM_CXXFLAGS, [-m64])
- TS_ADDTO(LUAJIT_LDFLAGS, [-m64])
+ TS_ADDTO(LUA_LDFLAGS, [-m64])
;;
esac
;;
debug_opt="-ggdb3 $common_opt -Qunused-arguments"
release_opt="-g $common_opt $optimizing_flags -fno-strict-aliasing -Qunused-arguments"
cxx_opt="-Wno-invalid-offsetof"
- luajit_cflags="-Wno-parentheses-equality -Wno-tautological-compare -analyzer-disable-all-checks -Wno-varargs"
])
AS_IF([test "x$ax_cv_c_compiler_vendor" = "xgnu"], [
debug_opt="-g $common_opt"
release_opt="-g $common_opt $optimizing_flags -fno-strict-aliasing"
cxx_opt="-Wno-invalid-offsetof"
- luajit_cflags="-Wno-parentheses-equality -Wno-tautological-compare -Wno-varargs"
], [
AC_MSG_WARN([clang is the only supported compiler on Darwin])
])
debug_opt="-ggdb3 $common_opt"
release_opt="-g $common_opt $optimizing_flags -fno-strict-aliasing"
cxx_opt="-Wno-invalid-offsetof"
- luajit_cflags="-Wno-parentheses-equality -Wno-tautological-compare -Wno-varargs"
])
AS_IF([test "x$ax_cv_c_compiler_vendor" = "xgnu"], [
# Check for lzma presence and usability
TS_CHECK_LZMA
+#
+# Check for luajit presence and usability
+TS_CHECK_LUA
+TS_ADDTO(CPPFLAGS, [$LUA_CFLAGS])
+
#
# Tcl macros provided by build/tcl.m4
#
# Check for libreadline/libedit
AX_LIB_READLINE
-# On Darwin LuaJIT requires magic link options, otherwise it will crash in luaL_openlibs() at startup. See
-# http://luajit.org/install.html.
-case $host_os_def in
- darwin)
- LUAJIT_LDFLAGS="-Wl,-pagezero_size,10000 -Wl,-image_base,100000000"
- ;;
-esac
-
-# Flags for building and linking against our internal copy of LuaJIT.
-AC_SUBST([LUAJIT_LDFLAGS])
-AC_SUBST([LUAJIT_CPPFLAGS], ['-I$(abs_top_srcdir)/lib/luajit/src'])
-
# We should be able to build http_load if epoll(2) is available.
AM_CONDITIONAL([BUILD_HTTP_LOAD], [test x"$ac_cv_func_epoll_ctl" = x"yes"])
-I\$(abs_top_srcdir)/iocore/utils \
-I\$(abs_top_srcdir)/iocore/dns"
-# Flags for buildit LuaJIT itself. We take the latest version
-# of the generic flags, plus any Lua-specific flags so that we
-# can strip the coverage flags from Lua while keeping them by
-# default everywhere else.
-TS_ADDTO(LUAJIT_CFLAGS, [$CFLAGS $luajit_cflags])
-AC_SUBST([LUAJIT_CFLAGS])
-
-TS_REMOVEFROM(LUAJIT_CFLAGS, "-fsanitize=address")
-TS_REMOVEFROM(LUAJIT_CFLAGS, "-fsanitize=thread")
-TS_REMOVEFROM(LUAJIT_CFLAGS, "-fsanitize=memory")
-TS_REMOVEFROM(LUAJIT_CFLAGS, "-fprofile-instr-generate")
-TS_REMOVEFROM(LUAJIT_CFLAGS, "-fcoverage-mapping")
-TS_REMOVEFROM(LUAJIT_CFLAGS, "--coverage")
-
AC_SUBST([AM_CPPFLAGS])
AC_SUBST([AM_CFLAGS])
AC_SUBST([AM_CXXFLAGS])
SHARED_LDFLAGS: $SHARED_LDFLAGS
OPENSSL_LDFLAGS: $OPENSSL_LDFLAGS
OPENSSL_INCLUDES: $OPENSSL_INCLUDES
- LUAJIT_CFLAGS: $LUAJIT_CFLAGS
- LUAJIT_CPPFLAGS: $LUAJIT_CPPFLAGS
- LUAJIT_LDFLAGS: $LUAJIT_LDFLAGS
+ LUA_LIBS: $LUA_LIBS
+ LUA_CFLAGS: $LUA_CFLAGS
+ LUA_CPPFLAGS: $LUA_CPPFLAGS
+ LUA_LDFLAGS: $LUA_LDFLAGS
])