#!/bin/sh # # rhctl # # Copyright (C) 2009-2014 Christian Pointner # # This file is part of rhctl. # # rhctl is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version. # # rhctl is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with rhctl. If not, see . # TARGET=`uname -s` USE_CLANG=0 LUA_LDFLAGS='-lm' LUA_DIR='' print_usage() { echo "configure --help print this" echo " --target= build target i.e. Linux (default: autodetect)" echo " --with-lua= use this lua tree instead of system default" echo " --use-clang use clang/llvm as compiler/linker" } for arg do case $arg in --target=*) TARGET=${arg#--target=} ;; --use-clang) USE_CLANG=1 ;; --with-lua=*) LUA_DIR=${arg#--with-lua=} ;; --help) print_usage exit 0 ;; *) echo "Unknown argument: $arg" print_usage exit 1 ;; esac done if [ $USE_CLANG -eq 0 ]; then CFLAGS='-g -Wall -O2' LDFLAGS='-g -Wall -O2' COMPILER='gcc' else CFLAGS='-g -O2' LDFLAGS='-g -O2' COMPILER='clang' fi 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" CFLAGS=$CFLAGS' -I/usr/local/include' LDFLAGS=$LDFLAGS' -L/usr/local/lib' ;; *) echo "Plattform not supported" exit 1; ;; 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_DIR=found 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_DIR=found elif [ -x "$prefix/bin/lua-$LUA_VERSION" ]; then LUA_LDFLAGS="$LUA_LDFLAGS -L$prefix/lib -llua-$LUA_VERSION" LUA_DIR=found else echo "ERROR: found lua.h at $dir/lua.h but no matching lua library" return 1 fi break fi fi done if [ -n "$LUA_DIR" ]; then break fi fi done if [ -z "$LUA_DIR" ]; 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" fi cat >> include.mk <