summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure80
1 files changed, 80 insertions, 0 deletions
diff --git a/configure b/configure
index f4b30be..d39c7f5 100755
--- a/configure
+++ b/configure
@@ -26,9 +26,15 @@ TARGET=`uname -s`
CFLAGS='-g -O2'
LDFLAGS='-g -Wall -O2'
+LUA_LDFLAGS='-lm'
+LUA_DIR=''
+LUA=''
+LUAC=''
+
print_usage() {
echo "configure --help print this"
echo " --target=<TARGET> build target i.e. Linux (default: autodetect)"
+ echo " --with-lua=<DIR> use this lua tree instead of system default"
}
for arg
@@ -37,6 +43,9 @@ do
--target=*)
TARGET=${arg#--target=}
;;
+ --with-lua=*)
+ LUA_DIR=${arg#--with-lua=}
+ ;;
--help)
print_usage
exit 0
@@ -53,6 +62,7 @@ rm -f include.mk
case $TARGET in
Linux)
echo "Linux specific build options"
+ LUA_LDFLAGS=$LUA_LDFLAGS' -ldl'
;;
OpenBSD|FreeBSD|NetBSD)
echo "BSD specific build options"
@@ -65,6 +75,73 @@ case $TARGET in
;;
esac
+test_lua_version()
+{
+ LUA_VERSION=`cat $1 | grep "#define LUA_VERSION[ ]" | cut -f2- | tr -d '"' | sed -e 's/Lua \([0-9][0-9.]*\)/\1/'`
+ LUA_VERSION_NUM=`cat $1 | grep "#define LUA_VERSION_NUM" | awk '{ print $3 }'`
+ LUA_RELEASE=`cat $1 | grep "#define LUA_RELEASE[ ]" | cut -f2-`
+
+ if [ $LUA_VERSION_NUM -ge 501 ]; then
+ return 1;
+ else
+ return 0;
+ fi
+}
+
+if [ -z "$LUA_DIR" ]; then
+ for prefix in /usr /usr/local; do
+ if [ -e $prefix/include/lua.h ]; then
+ test_lua_version $prefix/include/lua.h
+ if [ $? -eq 1 ]; then
+ echo "using Lua $LUA_VERSION ($LUA_RELEASE) found at $prefix/include"
+ CFLAGS="$CFLAGS -I$prefix/include"
+ LUA_LDFLAGS="$LUA_LDFLAGS -L$prefix/lib -llua"
+ LUA=$prefix/lua
+ LUAC=$prefix/luac
+ break
+ fi
+ else
+ for dir in `ls -d $prefix/include/lua* 2> /dev/null`; do
+ if [ -e $dir/lua.h ]; then
+ test_lua_version $dir/lua.h
+ if [ $? -eq 1 ]; then
+ echo "using Lua $LUA_VERSION ($LUA_RELEASE) found at $dir"
+ CFLAGS="$CFLAGS -I$dir"
+ if [ -x "$prefix/bin/lua$LUA_VERSION" ]; then
+ LUA_LDFLAGS="$LUA_LDFLAGS -L$prefix/lib -llua$LUA_VERSION"
+ LUA=$prefix/bin/lua$LUA_VERSION
+ LUAC=$prefix/bin/luac$LUA_VERSION
+ elif [ -x "$prefix/bin/lua-$LUA_VERSION" ]; then
+ LUA_LDFLAGS="$LUA_LDFLAGS -L$prefix/lib -llua-$LUA_VERSION"
+ LUA=$prefix/bin/lua-$LUA_VERSION
+ LUAC=$prefix/bin/luac-$LUA_VERSION
+ else
+ echo "ERROR: found lua.h at $dir/lua.h but no matching lua and luac"
+ return 1
+ fi
+ break
+ fi
+ fi
+ done
+ if [ -n "$LUAC" ]; then
+ break
+ fi
+ fi
+ done
+
+ if [ -z "$LUAC" ]; then
+ echo "ERROR: no suitable lua found .. please install lua 5.1 or higher or use --with-lua"
+ return 1
+ fi
+
+else
+ CFLAGS="$CFLAGS -I$LUA_DIR/include"
+ LUA_LDFLAGS="$LUA_LDFLAGS $LUA_DIR/lib/liblua.a"
+ LUA=$LUA_DIR/bin/lua
+ LUAC=$LUA_DIR/bin/luac
+fi
+
+
cat >> include.mk <<EOF
# this file was created automatically
# do not edit this file directly
@@ -74,6 +151,9 @@ TARGET := $TARGET
CC := gcc
CFLAGS := $CFLAGS
LDFLAGS := $LDFLAGS
+LUA_LDFLAGS := $LUA_LDFLAGS
+LUA := $LUA
+LUAC := $LUAC
EOF
exit 0