#!/bin/sh # # ľAnytun # # ľAnytun is a tiny implementation of SATP. Unlike Anytun which is a full # featured implementation ľAnytun has no support for multiple connections # or synchronisation. It is a small single threaded implementation intended # to act as a client on small platforms. # The secure anycast tunneling protocol (satp) defines a protocol used # for communication between any combination of unicast and anycast # 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 # intended to deliver a generic, scaleable and secure solution for # tunneling and relaying of packets of any protocol. # # # Copyright (C) 2007-2008 Christian Pointner # # This file is part of ľAnytun. # # ľAnytun is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3 as # published by the Free Software Foundation. # # ľAnytun 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 ľAnytun. If not, see . # TARGET=`uname -s` CFLAGS='-g -O2' LDFLAGS='-g -Wall -O2' CRYPTO_LIB='gcrypt' ANYTUN_02_COMPAT=0 PASSPHRASE=1 V4_MAPPED=1 print_usage() { echo "configure --help print this" echo " --use-ssl-crypto use ssl crypto library instead of libgcrypt" echo " --disable-crypto disable crypto at all (only NULL cipher)" echo " --enable-anytun02-compat enable compatiblity mode for anytun 0.2.x and prior" echo " --disable-passphrase disable master key and salt passphrase" echo " --disable-v4-mapped disable V4-Mapped addresses (until now this means" echo " to disable IPv6 as outer protocol)" } for arg do case $arg in --use-ssl-crypto) CRYPTO_LIB='ssl' ;; --disable-crypto) CRYPTO_LIB='none' ;; --enable-anytun02-compat) ANYTUN_02_COMPAT=1 ;; --disable-passphrase) PASSPHRASE=0 ;; --disable-v4-mapped) V4_MAPPED=0 ;; --help) print_usage exit 0 ;; *) echo "Unknown argument: $arg" print_usage exit 1 ;; esac done rm -f include.mk case $TARGET in Linux) rm -rf tun.c ln -sf linux/tun.c echo "loading Linux specific TUN Device" LDFLAGS=$LDFLAGS" -ldl" ;; OpenBSD|FreeBSD|NetBSD) rm -rf 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 [ "$TARGET" == 'OpenBSD' ]; then V4_MAPPED=0 fi ;; *) echo "Plattform not supported" exit 1; ;; esac case $CRYPTO_LIB in gcrypt) LDFLAGS=$LDFLAGS' -lgcrypt -lgpg-error' echo "using libgcrypt library" ;; ssl) CFLAGS=$CFLAGS' -DUSE_SSL_CRYPTO' LDFLAGS=$LDFLAGS' -lcrypto' echo "using ssl crypto library" ;; none) CFLAGS=$CFLAGS' -DNO_CRYPT' echo "NO_CRYPT_OBJ = 1" >> include.mk echo "disabling crypto" ;; esac if [ $ANYTUN_02_COMPAT -eq 1 ]; then CFLAGS=$CFLAGS' -DANYTUN_02_COMPAT' echo "enabling anytun 0.2.x crypto compatiblity mode" fi 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_UDPV6' echo "WARNING: disabling V4 mapped addresses, this prevents uanytun from using IPv6 as outer Protocol" fi cat >> include.mk <