diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 80 |
1 files changed, 80 insertions, 0 deletions
@@ -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 |