* Add configure script

This commit is contained in:
pancake 2010-03-14 21:53:22 +01:00
parent d11fbb69ec
commit d323a1bf7e
6 changed files with 512 additions and 3 deletions

View File

@ -1,6 +1,6 @@
# This file should be generated by the ./configure script
DESTDIR=
DESTDIR=@DESTDIR@
PREFIX=@PREFIX@
HAVE_LIB_EWF=@HAVE_LIB_EWF@
LIL_ENDIAN=@LIL_ENDIAN@

View File

@ -1,5 +1,4 @@
-include ../config-user.mk
-include ../global.mk
include config.mk
all: supported.langs ruby perl python lua

8
swig/autogen.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
#
# Look for the 'acr' tool here: http://www.nopcode.org/
# Clone last version of ACR from here:
# hg clone http://youterm.com/hg/acr
#
# -- pancake
acr -p

8
swig/config.mk.acr Normal file
View File

@ -0,0 +1,8 @@
DESTDIR=@DESTDIR@
PREFIX=@PREFIX@
VERSION=@VERSION@
INSTALL_DIR=@INSTALL_DIR@
INSTALL_DATA=@INSTALL_DATA@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_MAN=@INSTALL_MAN@

451
swig/configure vendored Executable file
View File

@ -0,0 +1,451 @@
#!/bin/sh
# This script was automatically generated by ACR v0.8.1
# @author: pancake <youterm.com>
# @url: http://www.nopcode.org
# @repo: hg clone http://hg.youterm.com/acr
do_remove() {
if [ "${ACR_RMFILES}" ]; then
printf "cleaning temporally files... "
rm -f ${ACR_RMFILES}
echo "done"
fi
}
control_c() {
printf "\n\n^C control-c : script execution interrupted.\n"
do_remove
exit 1
}
trap control_c 2
DEBUGGER=1
WANT_VALASWIG=1
WANT_VALA=1
split_host() {
S="$"
while : ; do
ENVWORDS="${ENVWORDS} $1_CPU $1_OS"
STR=`eval "echo ${S}$1"`
SPLIT_CPU="`echo "$STR" | cut -d - -f 1`"
SPLIT_OS="`echo "$STR" | cut -d - -f 3`"
eval "$1_CPU=\"$SPLIT_CPU\""
eval "$1_OS=\"$SPLIT_OS\""
shift
[ -z "$1" ] && break
done
}
VPATH=`dirname ${0}`
if [ "${VPATH}" = "." ]; then
WODIS=current
else
if [ "${VPATH}" = "${PWD}" ]; then
VPATH=.
WODIS=current
else
WODIS=crosspath
CURDIR=$PWD
cd $VPATH
VPATH="${PWD}/"
cd $CURDIR
fi
fi
guess_os() {
if [ -e "${VPATH}/config.guess" ]; then
sh ${VPATH}/config.guess
return
fi
CPU="`uname -m|sed -e 's, ,,g'`"
OS="`uname -s|awk '{print(tolower($0))}'`"
GNU="`uname --help 2>&1 | grep gnu`"
[ "${GNU}" ] && OS="${OS}-gnu"
[ "${CPU}" = ppc ] && CPU="powerpc"
echo "${CPU}-unknown-${OS}"
}
SEARCHPATH="/usr /usr/local /usr/pkg /sw"
: ${PREFIX:=/usr/local}
CROSSBUILD=0
BUILD=`guess_os`
HOST="${BUILD}"
TARGET="${HOST}"
SYSCONFDIR=""
create_environ() {
: ${EPREFIX:=${PREFIX}}
: ${SPREFIX:=${PREFIX}}
: ${BINDIR:=${SPREFIX}/bin}
: ${SBINDIR:=${PREFIX}/sbin}
: ${SYSCONFDIR:=${SPREFIX}/etc}
: ${LIBDIR:=${SPREFIX}/lib}
: ${LIBEXECDIR:=${SPREFIX}/libexec}
: ${DATADIR:=${SPREFIX}/share}
: ${INCLUDEDIR:=${SPREFIX}/include}
: ${INFODIR:=${SPREFIX}/info}
: ${MANDIR:=${SPREFIX}/man}
: ${LOCALSTATEDIR:=${SPREFIX}/var}
for A in `echo ${PATH} | sed -e 's,:, ,g'` ; do
[ -e $A/ginstall ] && : ${INSTALL:=$A/ginstall} && break
[ -e $A/install ] && : ${INSTALL:=$A/install} && break
done
: ${INSTALL_DIR:=${INSTALL} -d}
: ${INSTALL_DATA:=${INSTALL} -m 644}
: ${INSTALL_SCRIPT:=${INSTALL} -m 755}
: ${INSTALL_PROGRAM:=${INSTALL} -m 755 -s}
: ${INSTALL_MAN:=${INSTALL} -m 444}
: ${INSTALL_LIB:=${INSTALL} -c}
PKGNAME='radare2-swig' ; VERSION='0.4b' ; CONTACT_MAIL="pancake@nopcode.org" ; CONTACT_NAME="pancake" ; CONTACT="pancake <pancake@nopcode.org>" ;
}
show_usage() {
cat <<EOF2
'configure' configures radare2-swig-0.4b to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
-V, --version display version information and exit
-r, --report show what libs/programs require to work
Installation directories:
--prefix=PREFIX install arch-independent files in PREFIX [/usr/local]
--exec-prefix=EPREFIX install arch-dependent files in EPREFIX [PREFIX]
--sandbox=SPREFIX sandbox prefix directory: SPREFIX [PREFIX]
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--infodir=DIR info documentation [PREFIX/info]
--mandir=DIR man documentation [PREFIX/man]
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
EOF2
printf "\nOptional Features:
--without-debugger disable native debugger features
--without-valaswig disables the build of the valaswig bindings for python, perl, ruby
--without-vala disables the build of all the vala-dependant parts \n"
printf "\nSome influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
headers in a nonstandard directory <include dir>
CPP C preprocessor
CXX C++ compiler command
CXXFLAGS C++ compiler flags\n"
printf "\nReport bugs to: pancake <pancake@nopcode.org>"
echo ""
exit 0
}
take_environ() {
: ${SH:=/bin/sh}
: ${CPP:=cpp}
: ${CC:=gcc}
: ${CPP:=cpp}
: ${CXX:=g++}
: ${PREFIX:=/usr/local/}
}
show_version() {
echo "radare2-swig-0.4b configuration script done with acr v0.8.1.
The 'Free Software Foundation' message is only for autodetection.
Originally written by pancake <youterm.com>."
exit 0
}
parse_options() {
flag=`echo $1| cut -d = -f 1`
value=`echo $1| awk 'BEGIN{FS="=";}{print $2}'`
flag2=`echo $flag|cut -f2- -d -| sed -e 's,-,_,g' -e 's,^_,,g'|tr '[a-z]' '[A-Z]'`
case $flag in
"-h"|"--help"|"--hel"|"--h"|"--he"|"-help")
show_usage ; ;;
"-V"|"-version"|"--version")
show_version ; ;;
"-r"|"--r"|"--report")
echo "PKGNAME: radare2-swig"
echo "VERSION: 0.4b"
echo "LANGS: c c++"
echo "REQUIRED: lib>=vala-1.0 libvala-1.0>=0.7.0"
echo "OPTIONAL: liblua5.1"
echo "FLAGS: --without-debugger --without-valaswig --without-vala"
exit 0
;;
"--cache-file")
# ignored: acr have no cache
;;
"--build")
BUILD="$value"; split_host BUILD ; ;;
"--host")
CROSSBUILD=1 # XXX
HOST="$value"; split_host HOST ; ;;
"--target")
TARGET="$value"; split_host TARGET ; ;;
"--prefix")
PREFIX="$value"; ;;
"--exec-prefix")
EPREFIX="$value"; ;;
"--sandbox"|"--sprefix")
SPREFIX="$value"; ;;
"--bindir")
BINDIR="$value"; ;;
"--sbindir")
SBINDIR="$value"; ;;
"--libexecdir")
LIBEXECDIR="$value"; ;;
"--datadir")
DATADIR="$value"; ;;
"--sysconfdir")
SYSCONFDIR="$value"; ;;
"--sharedstatedir")
SHAREDSTATEDIR="$value"; ;;
"--localstatedir")
LOCALSTATEDIR="$value"; ;;
"--libdir")
LIBDIR="$value"; LDFLAGS="${LDFLAGS} -L$value -Wl,-R$value"; ;;
"--includedir")
INCLUDEDIR="$value"; CFLAGS="${CFLAGS} -I$value"; ;;
"--infodir")
INFODIR="$value"; ;;
"--mandir")
MANDIR="$value"; ;;
"--without-debugger") DEBUGGER="0"; ;;
"--without-valaswig") WANT_VALASWIG="0"; ;;
"--without-vala") WANT_VALA="0"; ;;
*) if [ "$value" ]; then eval "`echo $flag2=$value`" ;
else echo ; echo "WARNING: Unknown flag '$flag'." >&2 ; echo ; fi ;;
esac
}
# MAIN #
take_environ
split_host BUILD HOST TARGET
[ -z "$ACRHOOK" ] && ACRHOOK=./configure.hook
[ -e "$ACRHOOK" ] && . ${ACRHOOK}
while : ; do
[ -z "$1" ] && break
parse_options $1
shift
done
ENVWORDS="MANDIR INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR SYSCONFDIR DATADIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU PKGNAME VPATH VERSION CONTACT CONTACT_NAME CONTACT_MAIL CC CFLAGS LDFLAGS HAVE_LANG_C CXX CXXFLAGS HAVE_LANG_CXX DEBUGGER HAVE_LIB_LUA5_1 HAVE_LIB_TCC WANT_VALASWIG HAVE_VALASWIG VALASWIG HAVE_SWIG SWIG WANT_VALA HAVE_VALAC VALAC HAVE_VALA_1_0_VERSION_0_7_0"
create_environ
echo "checking build system type... ${BUILD}"
echo "checking host system type... ${HOST}"
echo "checking target system type... ${TARGET}"
[ "${CROSSBUILD}" = 1 ] && echo "using crosscompilation mode."
#split_host BUILD HOST TARGET
[ -n "${prefix}" ] && PREFIX=${prefix}
echo "checking for working directories... ${WODIS}"
echo "using prefix '${PREFIX}'"
ACR_RMFILES=" test.c a.out a.exe test.cxx a.out a.exe"
:
COMPILER=CC
printf "checking for c compiler... "
HAVE_LANG_C=1
if [ "${CROSSBUILD}" = 1 ]; then
(command -v ${HOST}-${CC} >/dev/null 2>&1)
if [ $? = 0 ]; then CC="${HOST}-${CC}"; fi
fi
echo "main(){}" > test.c
(exec ${CC} ${CFLAGS} ${LDFLAGS} test.c >/dev/null 2>&1)
if [ $? = 0 ]; then echo ${CC}; else
echo no ; HAVE_LANG_C=0
do_remove
echo "ERROR: ${CC} cannot create executables" >&2 ;
exit 1 ; fi
COMPILER=CXX
HAVE_LANG_CXX=1
printf "checking for c++ compiler... "
if [ "${CROSSBUILD}" = 1 ]; then
(command -v ${HOST}-${CXX} 2>&1 >/dev/null)
if [ "$?" = 0 ]; then CXX="${HOST}-${CXX}"; fi
fi
echo "#include <iostream>" > test.cxx
echo "main(){ std::cout << \"\"; }" >> test.cxx
(exec ${CXX} ${CXXFLAGS} ${LDFLAGS} test.cxx -lstdc++ >/dev/null 2>&1)
if [ $? = 0 ]; then echo ${CXX}; else
HAVE_LANG_CXX=0
echo no
echo "ERROR: ${CXX} cannot create executables" >&2 ;
do_remove
exit 1
; fi
check_library() {
VAR=$1
S="$"
_REQUIRED=$3
_CHKLIB_NAME=$2
_CHKLIB_LIBS=$(echo "-l${_CHKLIB_NAME}" | sed 's,\+, -l,g')
printf "checking for lib${_CHKLIB_NAME} ... "
echo "main(){ }" > test.c
eval ${S}${COMPILER} ${CFLAGS} ${LDFLAGS} ${_CHKLIB_LIBS} test.c >/dev/null 2>&1
if [ $? = 0 ]; then
eval ${VAR}=1
echo yes
else
eval ${VAR}=0
echo no ; fi }
check_library HAVE_LIB_LUA5_1 lua5.1 0
check_library HAVE_LIB_TCC tcc 0
printf "checking for valaswig... "
if [ -x "${VALASWIG}" ]; then
FIND=${VALASWIG}
else
FIND=""
for A in `echo ${PATH} | sed -e 's,:, ,g'`; do
if [ -x "${A}/valaswig" ]; then
FIND="${A}/valaswig"
break;
fi
done
fi
if [ -n "${FIND}" ]; then
echo ${FIND};
HAVE_VALASWIG=1
VALASWIG=${FIND}
else
HAVE_VALASWIG=0
VALASWIG=valaswig
echo no ; fi
printf "checking for swig... "
if [ -x "${SWIG}" ]; then
FIND=${SWIG}
else
FIND=""
for A in `echo ${PATH} | sed -e 's,:, ,g'`; do
if [ -x "${A}/swig" ]; then
FIND="${A}/swig"
break;
fi
done
fi
if [ -n "${FIND}" ]; then
echo ${FIND};
HAVE_SWIG=1
SWIG=${FIND}
else
HAVE_SWIG=0
SWIG=swig
echo no ; fi
if [ "$WANT_VALASWIG" = "1" ]; then
if [ "$HAVE_SWIG" = "0" ]; then
echo " valaswig depends on swig" >&2
HAVE_VALASWIG="0"; fi
else
HAVE_VALASWIG="0"; fi
printf "checking for valac... "
if [ -x "${VALAC}" ]; then
FIND=${VALAC}
else
FIND=""
for A in `echo ${PATH} | sed -e 's,:, ,g'`; do
if [ -x "${A}/valac" ]; then
FIND="${A}/valac"
break;
fi
done
fi
if [ -n "${FIND}" ]; then
echo ${FIND};
HAVE_VALAC=1
VALAC=${FIND}
else
HAVE_VALAC=0
VALAC=valac
echo no ; fi
if [ "$WANT_VALA" = "1" ]; then
HAVE_VALA_1_0_VERSION_0_7_0=0
printf "checking version of library vala-1.0 >= 0.7.0... "
pkg-config --atleast-version=0.7.0 vala-1.0 >/dev/null 2>&1
if [ $? = 0 ]; then HAVE_VALA_1_0_VERSION_0_7_0=1 ; echo ok; else
echo "no" ; fi
if [ "$HAVE_VALA_1_0_VERSION_0_7_0" = "0" ]; then
echo " Needs vala 0.7.0 at least" >&2
HAVE_VALAC="0"
VALAC=""; fi
else
HAVE_VALAC="0"; fi
SEDFLAGS=" -e '"
COUNT=0
for A in ${ENVWORDS} ; do
[ "${A}" = VPATH ] && continue
[ "${A}" = srcdir ] && continue
eval "VAR=\$${A}"
VAR="`echo ${VAR} | sed -e 's/\,/\\\,/g'`"
[ $COUNT = 10 ] && COUNT=0 && SEDFLAGS="${SEDFLAGS}' -e '"
COUNT=$(($COUNT+1))
SEDFLAGS="${SEDFLAGS}s,@${A}@,${VAR},g;"
done
SEDFLAGS="${SEDFLAGS}'"
for A in ./config.mk ; do # SUBDIRS
if [ -f "${VPATH}/${A}.acr" ]; then
SD_TARGET=${A}
else
if [ -d "${VPATH}/${A}" ]; then
SD_TARGET=${A}/Makefile
mkdir -p ${A}
else
echo "ERROR: Cannot find ${VPATH}/${A}.acr" >&2
exit 1
fi
fi
echo "creating ${SD_TARGET}"
mkdir -p $(echo ${A} | sed -e "s,/`basename ${A}`$,,g")
cat ${VPATH}/${SD_TARGET}.acr | \
eval sed -e "s,@VPATH@,${VPATH}/${A},g" ${SEDFLAGS} > ${SD_TARGET}.tmp
for A in ${ENVWORDS}; do
VALUE=`eval echo "$"${A}`
if [ "$VALUE" = 0 ]; then ## FALSE
MARK="##${A}##"
if [ -n "`grep \"${MARK}\" ${SD_TARGET}.tmp`" ]; then
mv ${SD_TARGET}.tmp ${SD_TARGET}.tmp2
cat ${SD_TARGET}.tmp2 | MARK=$MARK awk 'BEGIN{a=0;}{if($1==ENVIRON["MARK"]){if(a)a=0;else a=1}else{if(!a)print;}}' > ${SD_TARGET}.tmp
fi
fi
done
mv ${SD_TARGET}.tmp ${SD_TARGET} && rm -f ${SD_TARGET}.tmp2
if [ $? = 1 ]; then echo Cannot write target file ; control_c ; fi
done
do_remove
echo
echo "Final report:"
for A in PREFIX HAVE_VALASWIG HAVE_LIB_TCC HAVE_VALAC ; do # REPORT
eval VAL="\$${A}"
[ -z "${VAL}" ] && VAL="(null)"
echo " - ${A} = ${VAL}"
done

43
swig/configure.acr Normal file
View File

@ -0,0 +1,43 @@
PKGNAME radare2-swig
VERSION 0.4b
CONTACT pancake ; pancake@nopcode.org
LANG_C!
LANG_CXX!
ARG_WITHOUT DEBUGGER debugger disable native debugger features ;
CHKLIB lua5.1
CHKLIB tcc
ARG_WITHOUT WANT_VALASWIG valaswig disables the build of the valaswig bindings for python, perl, ruby ;
CHKPRG VALASWIG valaswig
CHKPRG SWIG swig
IF WANT_VALASWIG {
IFNOT HAVE_SWIG {
ECHO valaswig depends on swig ;
HAVE_VALASWIG = 0 ;
}
}{
HAVE_VALASWIG = 0 ;
}
ARG_WITHOUT WANT_VALA vala disables the build of all the vala-dependant parts ;
CHKPRG VALAC valac
(( temporary fix to avoid vala ))
IF WANT_VALA {
CHKVER vala-1.0 0.7.0
IFNOT HAVE_VALA_1_0_VERSION_0_7_0 {
ECHO Needs vala 0.7.0 at least ;
HAVE_VALAC = 0 ;
VALAC = '' ;
}
}{
HAVE_VALAC = 0 ;
}
SUBDIRS ./config.mk ;
REPORT PREFIX HAVE_VALASWIG HAVE_LIB_TCC HAVE_VALAC ;