X-Git-Url: https://git.syn-net.org/?p=debian%2Fuanytun.git;a=blobdiff_plain;f=src%2Fconfigure;h=804455294ea231fccef15c69d93540de36d2d7d7;hp=f4ed32dc9bc13e7cc5d9feb6353d374c21c4c68b;hb=cd587a97e53c5eddf158462a6ff2271351e813e5;hpb=e3f8e33112e2191999c6d6f6b6a767c72db800a0 diff --git a/src/configure b/src/configure index f4ed32d..8044552 100755 --- a/src/configure +++ b/src/configure @@ -11,12 +11,12 @@ # tunnel endpoints. It has less protocol overhead than IPSec in Tunnel # mode and allows tunneling of every ETHER TYPE protocol (e.g. # ethernet, ip, arp ...). satp directly includes cryptography and -# message authentication based on the methodes used by SRTP. It is +# message authentication based on the methods used by SRTP. It is # intended to deliver a generic, scaleable and secure solution for # tunneling and relaying of packets of any protocol. -# # -# Copyright (C) 2007-2008 Christian Pointner +# +# Copyright (C) 2007-2014 Christian Pointner # # This file is part of uAnytun. # @@ -33,17 +33,27 @@ # You should have received a copy of the GNU General Public License # along with uAnytun. If not, see . # +# In addition, as a special exception, the copyright holders give +# permission to link the code of portions of this program with the +# OpenSSL library under certain conditions as described in each +# individual source file, and distribute linked combinations +# including the two. +# You must obey the GNU General Public License in all respects +# for all of the code used other than OpenSSL. If you modify +# file(s) with this exception, you may extend this exception to your +# version of the file(s), but you are not obligated to do so. If you +# do not wish to do so, delete this exception statement from your +# version. If you delete this exception statement from all source +# files in the program, then also delete it here. +# TARGET=`uname -s` - EBUILD_COMPAT=0 -CFLAGS='-g -O2' -LDFLAGS='-g -Wall -O2' +USE_CLANG=0 CRYPTO_LIB='gcrypt' PASSPHRASE=1 -V4_MAPPED=1 PREFIX='/usr/local' SBINDIR='' @@ -63,13 +73,13 @@ print_usage() { echo " --no-manpage dont't install manpage" echo " --examplesdir= the path to the examples files (default: $PREFIX/share/examples)" echo " --no-examples dont't install example files" - echo " --use-ssl-crypto use ssl crypto library instead of libgcrypt" + echo " --use-gcrypt use libgcrypt (this is the default)" + echo " --use-nettle use libnettle instead of libgcrypt" + echo " --use-ssl-crypto use openssl crypto library instead of libgcrypt" echo " --no-crypto disable crypto at all (only NULL cipher)" echo " --disable-passphrase disable master key and salt passphrase" echo " --enable-passphrase enable master key and salt passphrase" - echo " --disable-v4-mapped disable V4-Mapped addresses (this means to disable" - echo " simultanious use of IPv4 and IPv6)" - echo " --enable-v4-mapped enable V4-Mapped addresses" + echo " --use-clang use clang/llvm as compiler/linker" } for arg @@ -78,6 +88,9 @@ do --target=*) TARGET=${arg#--target=} ;; + --use-clang) + USE_CLANG=1 + ;; --prefix=*) PREFIX=${arg#--prefix=} ;; @@ -99,24 +112,24 @@ do --no-examples) INSTALLEXAMPLES=0 ;; + --use-gcrypt) + CRYPTO_LIB='gcrypt' + ;; + --use-nettle) + CRYPTO_LIB='nettle' + ;; --use-ssl-crypto) CRYPTO_LIB='ssl' ;; --no-crypto) CRYPTO_LIB='none' - ;; + ;; --disable-passphrase) PASSPHRASE=0 ;; --enable-passphrase) PASSPHRASE=1 ;; - --disable-v4-mapped) - V4_MAPPED=0 - ;; - --enable-v4-mapped) - V4_MAPPED=2 - ;; --ebuild-compat) EBUILD_COMPAT=1 ;; @@ -139,58 +152,70 @@ if [ -n "$ERRORS" ] && [ $EBUILD_COMPAT -ne 1 ]; then exit 1 fi +if [ $USE_CLANG -eq 0 ]; then + CFLAGS=$CFLAGS'-g -Wall -O2' + LDFLAGS=$LDFLAGS'-g -Wall -O2' + COMPILER='gcc' +else + CFLAGS=$CFLAGS'-g -O2' + LDFLAGS=$LDFLAGS'-g -O2' + COMPILER='clang' +fi +rm -f version.h rm -f include.mk -case $TARGET in +case $TARGET in Linux) rm -f tun.c ln -sf linux/tun.c echo "loading Linux specific TUN Device" ;; - OpenBSD|FreeBSD|NetBSD) + OpenBSD|FreeBSD|NetBSD|GNU/kFreeBSD) rm -f tun.c ln -sf bsd/tun.c echo "loading BSD specific TUN Device" CFLAGS=$CFLAGS' -I/usr/local/include' LDFLAGS=$LDFLAGS' -L/usr/local/lib' - if [ $V4_MAPPED -ne 2 ]; then - V4_MAPPED=0 - fi ;; *) - echo "Plattform not supported" + echo "platform not supported" exit 1; ;; esac - +CRYPTO_LIB_NAME="" case $CRYPTO_LIB in gcrypt) + CFLAGS=$CFLAGS' -DUSE_GCRYPT' LDFLAGS=$LDFLAGS' -lgcrypt' - echo "using libgcrypt library" + CRYPTO_LIB_NAME="libgcrypt" + ;; + nettle) + CFLAGS=$CFLAGS' -DUSE_NETTLE' + LDFLAGS=$LDFLAGS' -lnettle' + CRYPTO_LIB_NAME="Nettle" ;; ssl) CFLAGS=$CFLAGS' -DUSE_SSL_CRYPTO' LDFLAGS=$LDFLAGS' -lcrypto' - echo "using ssl crypto library" + CRYPTO_LIB_NAME="OpenSSL" ;; none) CFLAGS=$CFLAGS' -DNO_CRYPT' - echo "NO_CRYPT_OBJ = 1" >> include.mk - echo "disabling crypto" + CRYPTO_LIB_NAME="none" + ;; + *) + echo "unknown crypto library: $$CRYPTO_LIB" + exit 1 ;; esac +echo "crypto-library: $CRYPTO_LIB_NAME" if [ $PASSPHRASE -eq 0 ]; then CFLAGS=$CFLAGS' -DNO_PASSPHRASE' echo "disabling master key and salt passphrase" fi -if [ $V4_MAPPED -eq 0 ]; then - CFLAGS=$CFLAGS' -DNO_V4MAPPED' - echo "WARNING: disabling V4 mapped addresses, this prevents uanytun from using IPv6 and IPv4 Sockets at the same time" -fi - if [ -z "$SBINDIR" ]; then SBINDIR=$PREFIX/sbin fi @@ -207,23 +232,27 @@ if [ -z "$EXAMPLESDIR" ]; then EXAMPLESDIR=$PREFIX/share/examples fi -cat >> include.mk < include.mk <> include.mk +fi + if [ $INSTALLMANPAGE -eq 1 ]; then echo "MANDIR := $MANDIR" >> include.mk echo "installing manpage" @@ -238,4 +267,31 @@ else echo "not installing example files" fi +VERSION=`cat ../version` +if which git >/dev/null; then + GIT_HASH=`git rev-parse HEAD 2> /dev/null` + if [ -n "$GIT_HASH" ]; then + VERSION="$VERSION (git $GIT_HASH)" + fi +fi + +cat > version.h <