#!/bin/sh # # uAnytun # # uAnytun is a tiny implementation of SATP. Unlike Anytun which is a full # featured implementation uAnytun 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-2010 Christian Pointner # # This file is part of uAnytun. # # uAnytun 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. # # uAnytun 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 uAnytun. If not, see . # TARGET=`uname -s` EBUILD_COMPAT=0 CFLAGS='-g -O2' LDFLAGS='-g -Wall -O2' CRYPTO_LIB='gcrypt' PASSPHRASE=1 PREFIX='/usr/local' SBINDIR='' ETCDIR='' MANDIR='' INSTALLMANPAGE=1 EXAMPLESDIR='' INSTALLEXAMPLES=1 print_usage() { echo "configure --help print this" echo " --target= build target i.e. Linux (default: autodetect)" echo " --prefix= the installation prefix (default: /usr/local)" echo " --sbindir= the path to the sbin directory (default: $PREFIX/sbin)" echo " --sysconfdir= the path to the system configuration directory (default: $PREFIX/etc" echo " --mandir= the path to the system man pages (default: $PREFIX/share/man)" 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 " --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" } for arg do case $arg in --target=*) TARGET=${arg#--target=} ;; --prefix=*) PREFIX=${arg#--prefix=} ;; --sbindir=*) SBINDIR=${arg#--sbindir=} ;; --sysconfdir=*) ETCDIR=${arg#--sysconfdir=} ;; --mandir=*) MANDIR=${arg#--mandir=} ;; --no-manpage) INSTALLMANPAGE=0 ;; --examplesdir=*) EXAMPLESDIR=${arg#--examplesdir=} ;; --no-examples) INSTALLEXAMPLES=0 ;; --use-ssl-crypto) CRYPTO_LIB='ssl' ;; --no-crypto) CRYPTO_LIB='none' ;; --disable-passphrase) PASSPHRASE=0 ;; --enable-passphrase) PASSPHRASE=1 ;; --ebuild-compat) EBUILD_COMPAT=1 ;; --help) print_usage exit 0 ;; *) ERRORS="$ERRORS $arg" ;; esac done if [ -n "$ERRORS" ] && [ $EBUILD_COMPAT -ne 1 ]; then for error in $ERRORS; do echo "Unknown argument: $error" done print_usage exit 1 fi rm -f version.h rm -f include.mk case $TARGET in Linux) rm -f tun.c ln -sf linux/tun.c echo "loading Linux specific TUN Device" ;; 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' ;; *) echo "platform not supported" exit 1; ;; esac case $CRYPTO_LIB in gcrypt) LDFLAGS=$LDFLAGS' -lgcrypt' 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 [ $PASSPHRASE -eq 0 ]; then CFLAGS=$CFLAGS' -DNO_PASSPHRASE' echo "disabling master key and salt passphrase" fi if [ -z "$SBINDIR" ]; then SBINDIR=$PREFIX/sbin fi if [ -z "$ETCDIR" ]; then ETCDIR=$PREFIX/etc fi if [ -z "$MANDIR" ]; then MANDIR=$PREFIX/share/man fi if [ -z "$EXAMPLESDIR" ]; then EXAMPLESDIR=$PREFIX/share/examples fi cat >> include.mk <> include.mk echo "installing manpage" else echo "not installing manpage" fi if [ $INSTALLEXAMPLES -eq 1 ]; then echo "EXAMPLESDIR := $EXAMPLESDIR" >> include.mk echo "installing example files" else echo "not installing example files" fi VERSION=`cat ../version` if which svn >/dev/null; then SVN_REV=`svn info | grep "^Revision: " | awk '{print($2)}'` if [ -n "$SVN_REV" ]; then VERSION="$VERSION (svn$SVN_REV)" fi fi HOSTNAME=`hostname` DATE=`date +"%d.%m.%Y %H:%M:%S %Z"` cat >> version.h <