kopia lustrzana https://github.com/FreeSpacenav/libspnav
180 wiersze
4.0 KiB
Bash
Executable File
180 wiersze
4.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
if [ -z "$CC" ]; then
|
|
CC=cc
|
|
fi
|
|
|
|
cfgtest_src=.cfgtest.c
|
|
|
|
run_test() {
|
|
$CC -o .cfgtest $cfgtest_src >cfgtest.log 2>&1
|
|
if [ $? != 0 ]; then
|
|
echo "failed to compile test program, see cfgtest.log" >&2
|
|
exit 1
|
|
fi
|
|
./.cfgtest && cfgtest_result=0 || cfgtest_result=1
|
|
rm -f .cfgtest $cfgtest_src cfgtest.log
|
|
return $cfgtest_result
|
|
}
|
|
|
|
|
|
PREFIX=/usr/local
|
|
OPT=yes
|
|
DBG=yes
|
|
X11=yes
|
|
VER=`git describe --tags 2>/dev/null`
|
|
|
|
if [ -z "$VER" ]; then
|
|
VER=`git rev-parse --short HEAD 2>/dev/null`
|
|
if [ -z "$VER" ]; then
|
|
VER=v`pwd | grep 'libspnav-[0-9]\+\.' | sed 's/.*libspnav-\(\([0-9]\+\.\)\+[0-9]\+\).*$/\1/'`
|
|
if [ $VER = v ]; then
|
|
VER='<unknown version>'
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
echo "configuring libspnav - $VER"
|
|
|
|
srcdir="`dirname "$0"`"
|
|
libdir=lib
|
|
|
|
#if [ "`uname -m`" = 'x86_64' ]; then
|
|
# libdir=lib64
|
|
#fi
|
|
|
|
for arg in $*; do
|
|
case "$arg" in
|
|
--prefix=*)
|
|
value=`echo $arg | sed 's/--prefix=//'`
|
|
PREFIX=${value:-$prefix}
|
|
;;
|
|
|
|
--enable-opt)
|
|
OPT=yes;;
|
|
--disable-opt)
|
|
OPT=no;;
|
|
|
|
--enable-debug)
|
|
DBG=yes;;
|
|
--disable-debug)
|
|
DBG=no;;
|
|
|
|
--enable-x11)
|
|
X11=yes;;
|
|
--disable-x11)
|
|
X11=no;;
|
|
|
|
--help)
|
|
echo 'usage: ./configure [options]'
|
|
echo 'options:'
|
|
echo ' --prefix=<path>: installation path (default: /usr/local)'
|
|
echo ' --enable-x11: enable X11 communication mode (default)'
|
|
echo ' --disable-x11: disable X11 communication mode'
|
|
echo ' --enable-opt: enable speed optimizations (default)'
|
|
echo ' --disable-opt: disable speed optimizations'
|
|
echo ' --enable-debug: include debugging symbols (default)'
|
|
echo ' --disable-debug: do not include debugging symbols'
|
|
echo 'all invalid options are silently ignored'
|
|
exit 0
|
|
;;
|
|
esac
|
|
done
|
|
|
|
sys=`uname -s | sed 's/MINGW.*/mingw/'`
|
|
|
|
# check if CC is gcc
|
|
echo 'int main(void) {' >$cfgtest_src
|
|
echo '#ifdef __GNUC__' >>$cfgtest_src
|
|
echo ' return 0;' >>$cfgtest_src
|
|
echo '#endif' >>$cfgtest_src
|
|
echo ' return 1; }' >>$cfgtest_src
|
|
run_test && cc_is_gcc=true || cc_is_gcc=false
|
|
|
|
# check if CC is MIPSpro
|
|
$CC -version 2>&1 | grep MIPSpro >/dev/null && cc_is_mipspro=true || cc_is_mipspro=false
|
|
|
|
echo " prefix: $PREFIX"
|
|
echo " optimize for speed: $OPT"
|
|
echo " include debugging symbols: $DBG"
|
|
echo " x11 communication method: $X11"
|
|
if [ -n "$CFLAGS" ]; then
|
|
echo " cflags: $CFLAGS"
|
|
fi
|
|
if [ -n "$LDFLAGS" ]; then
|
|
echo " ldflags: $LDFLAGS"
|
|
fi
|
|
echo ""
|
|
|
|
if [ "$X11" = "no" ]; then
|
|
echo "WARNING: you have disabled the X11 interface, the resulting library won't be compatible with the proprietary 3Dconnexion daemon (3dxserv)!"
|
|
echo ""
|
|
fi
|
|
|
|
# create Makefile
|
|
echo 'creating Makefile ...'
|
|
echo "PREFIX = $PREFIX" >Makefile
|
|
echo "srcdir = $srcdir" >>Makefile
|
|
echo "libdir = $libdir" >>Makefile
|
|
|
|
if [ -n "$CFLAGS" ]; then
|
|
echo "user_cflags = $CFLAGS" >>Makefile
|
|
fi
|
|
if [ -n "$LDFLAGS" ]; then
|
|
echo "user_ldflags = $LDFLAGS" >>Makefile
|
|
fi
|
|
|
|
if [ "$DBG" = 'yes' ]; then
|
|
echo 'dbg = -g3' >>Makefile
|
|
fi
|
|
|
|
if [ "$OPT" = 'yes' ]; then
|
|
if $cc_is_gcc; then
|
|
echo 'opt = -O2 -fno-strict-aliasing' >>Makefile
|
|
else
|
|
echo 'opt = -O2' >>Makefile
|
|
fi
|
|
fi
|
|
|
|
if [ "$X11" = 'yes' ]; then
|
|
echo 'magellan_obj = src/spnav_magellan.o' >>Makefile
|
|
echo 'xlib = -lX11' >>Makefile
|
|
fi
|
|
|
|
if $cc_is_gcc; then
|
|
echo 'cc_cflags = -std=c89 -pedantic -Wall -MMD' >>Makefile
|
|
fi
|
|
|
|
if [ "$sys" != mingw -a "$sys" != Darwin ]; then
|
|
if $cc_is_mipspro; then
|
|
echo 'pic = -KPIC' >>Makefile
|
|
else
|
|
echo 'pic = -fPIC' >>Makefile
|
|
fi
|
|
fi
|
|
|
|
|
|
cat "$srcdir/Makefile.in" >>Makefile
|
|
|
|
# create spnav_config.h
|
|
echo 'creating spnav_config.h ...'
|
|
echo '#ifndef SPNAV_CONFIG_H_' >src/spnav_config.h
|
|
echo '#define SPNAV_CONFIG_H_' >>src/spnav_config.h
|
|
echo '' >>src/spnav_config.h
|
|
if [ "$X11" = 'yes' ]; then
|
|
echo '#define SPNAV_USE_X11' >>src/spnav_config.h
|
|
echo '' >>src/spnav_config.h
|
|
fi
|
|
echo '#endif /* SPNAV_CONFIG_H_ */' >>src/spnav_config.h
|
|
|
|
# create pkgconfig file
|
|
echo 'creating spnav.pc ...'
|
|
pcver=`echo $VER | sed 's/^v//'`
|
|
echo "PREFIX=$PREFIX" >spnav.pc
|
|
cat "$srcdir/spnav.pc.in" | sed "s/@VERSION@/$pcver/; s/@LIBDIR@/$libdir/" >>spnav.pc
|
|
|
|
#done
|
|
echo ''
|
|
echo 'Done. You can now type make (or gmake) to compile libspnav.'
|
|
echo ''
|