summaryrefslogtreecommitdiff
path: root/src/configure
diff options
context:
space:
mode:
Diffstat (limited to 'src/configure')
-rwxr-xr-xsrc/configure70
1 files changed, 51 insertions, 19 deletions
diff --git a/src/configure b/src/configure
index cc8e728..6b8bdf6 100755
--- a/src/configure
+++ b/src/configure
@@ -26,11 +26,15 @@ USE_CLANG=0
LUA_LDFLAGS='-lm'
LUA_DIR=''
+LUA=''
+LUA_VER=''
+
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"
+ echo " --lua-version=nnn set fixed Lua version for automatic detection (501 -> 5.1, 502 -> 5.2)"
echo " --use-clang use clang/llvm as compiler/linker"
}
@@ -46,6 +50,9 @@ do
--with-lua=*)
LUA_DIR=${arg#--with-lua=}
;;
+ --lua-version=*)
+ LUA_VER=${arg#--lua-version=}
+ ;;
--help)
print_usage
exit 0
@@ -87,14 +94,32 @@ 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_MAJ=`cat $1 | grep "#define LUA_VERSION_MAJOR[ ]" | cut -f2- | tr -d '"'`
+ LUA_VERSION_MIN=`cat $1 | grep "#define LUA_VERSION_MINOR[ ]" | cut -f2- | tr -d '"'`
+ LUA_VERSION_REL=`cat $1 | grep "#define LUA_VERSION_RELEASE[ ]" | cut -f2- | tr -d '"'`
+
+ LUA_VERSION="$LUA_VERSION_MAJ.$LUA_VERSION_MIN"
+ LUA_RELEASE="$LUA_VERSION_MAJ.$LUA_VERSION_MIN.$LUA_VERSION_REL"
+
+ if [ -z "$LUA_VERSION_MAJ" ]; then
+ LUA_VERSION=`cat $1 | grep "#define LUA_VERSION[ ]" | cut -f2- | tr -d '"' | sed -e 's/Lua \([0-9][0-9.]*\)/\1/'`
+ LUA_RELEASE=`cat $1 | grep "#define LUA_RELEASE[ ]" | cut -f2- | tr -d '"' | sed -e 's/Lua //'`
+ fi
+
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;
+ if [ -n "$LUA_VER" ]; then
+ if [ "$LUA_VER" -eq $LUA_VERSION_NUM ]; then
+ return 1
+ else
+ return 0
+ fi
else
- return 0;
+ if [ $LUA_VERSION_NUM -ge 501 ]; then
+ return 1
+ else
+ return 0
+ fi
fi
}
@@ -104,50 +129,55 @@ if [ -z "$LUA_DIR" ]; 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_DIR=found
+ 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
+ for dir in `ls -r -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_DIR=found
+ 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_DIR=found
+ 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 library"
+ echo "ERROR: found lua.h at $dir/lua.h but no matching lua and luac"
return 1
fi
break
fi
fi
done
- if [ -n "$LUA_DIR" ]; then
+ if [ -n "$LUAC" ]; then
break
fi
fi
done
- if [ -z "$LUA_DIR" ]; then
+ 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"
+ 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
+cat > include.mk <<EOF
# this file was created automatically
# do not edit this file directly
# use ./configure instead
@@ -156,6 +186,8 @@ TARGET := $TARGET
CC := $COMPILER
CFLAGS := $CFLAGS
LDFLAGS := $LDFLAGS
+LUA := $LUA
+LUAC := $LUAC
LUA_LDFLAGS := $LUA_LDFLAGS
EOF