#!/bin/sh
CBASE=""
ASFLAGS=""
LFLAGS=""
if [ `uname` = Linux -o `uname` = FreeBSD ]
then
  if [ `uname` = Linux ]
  then
    VERSION=`uname -r | cut -b1`
    CFLAGS="-DLINUX -DLINUX$VERSION"
    hw=`uname -m`
    mf=Makefile.in
  else
    VERSION=""
    CFLAGS="-DFreeBSD"
    hw=`sysctl hw.model | sed -e 's/.*80286.*/i286/' -e 't done' \
	-e 's/.*i386.*/i386/' -e 't done' -e 's/.*i486.*/i486/' -e 't done' \
	-e 's/.*/i586/' -e ':done'`
    if [ `uname -m` != i386 ]
    then
      hw=`uname -m`
    fi
    mf=Makefile.FreeBSD.in
  fi
  comp=0
  for dir in /usr/local/lib /usr/lib
  do
    for lib in gz z
    do
      if [ -f $dir/lib$lib.a ]
      then
	if [ "$LFLAGS" = "" ]
	then
	  for hdr in /usr/local/include /usr/include
	  do
	    if [ -f $hdr/zlib.h ]
	    then
	      comp=1
	      if [ "`grep -c '.*int.*compress2' $hdr/zlib.h`" != "0" ]
	      then
		if [ "$hdr" = "/usr/include" ]
		then
		  CFLAGS="-DCOMPRESS $CFLAGS"
		else
		  CFLAGS="-I$hdr -DCOMPRESS $CFLAGS"
		fi
		if [ "$dir" = "/usr/lib" ]
		then
		  LFLAGS="-l$lib"
		else
		  LFLAGS="-L$dir -l$lib"
		fi
		  ASFLAGS="--defsym COMPRESS=1"
	      else
		echo "Please upgrade your zlib package to at least 1.1.3"
		echo "You can find it at:"
		echo "http://www.cdrom.com/pub/infozip/zlib/"
		echo "Building vpnd with runtime compression disabled."
	      fi
	    fi
	  done
	fi
      fi
    done
  done
  if [ $comp = 0 ]
  then
    echo "Please install the package zlib 1.1.3 or later."
    echo "You can find it at:"
    echo "http://www.cdrom.com/pub/infozip/zlib/"
    echo "If your system has libz.so installed please"
    echo "make sure that the zlib-devel rpm is installed,"
    echo "too."
    echo "Building vpnd with runtime compression disabled."
  fi
  if [ "$VERSION" = "2" ]
  then
    if [ -f /usr/include/linux/if_slip.h ]
    then
      if [ ! -f /usr/include/net/if_slip.h ]
      then
	CFLAGS="$CFLAGS -DLINSLIP"
      fi
    fi
  fi
  inl=`gcc $CFLAGS -DMD5_HMAC_FAST -DSHA1_HMAC_FAST -DRMD160_HMAC_FAST -O3 -fno-inline -S route.c -o - | grep -c __fswab`
  if [ "$inl" = "0" ]
  then
    INLINE=" -fno-inline"
  else
    INLINE=""
  fi
  case $hw in
   i486)cobj="blowfishx86.o cryptox86.o md5x86.o sha1x86.o rmd160x86.o"
	robj="blowfishx86.o"
	cflg="-DCRYPTOX86"
	aflg="--defsym MD5_HMAC_FAST=1 --defsym SHA1_HMAC_FAST=1 --defsym=RMD160_HMAC_FAST=1"
	;;
   i586)cobj="blowfishx86.o cryptox86.o md5x86.o sha1x86.o rmd160x86.o"
	robj="blowfishx86.o"
	cflg="-DCRYPTOX86"
	aflg="--defsym MD5_HMAC_FAST=1 --defsym SHA1_HMAC_FAST=1 --defsym=RMD160_HMAC_FAST=1"
	;;
   i686)cobj="blowfishx86.o cryptox86.o md5x86.o sha1x86.o rmd160x86.o"
	robj="blowfishx86.o"
	cflg="-DCRYPTOX86"
	aflg="--defsym MD5_HMAC_FAST=1 --defsym SHA1_HMAC_FAST=1 --defsym=RMD160_HMAC_FAST=1"
	;;
   *)   cobj="blowfish.o md5.o sha1.o rmd160.o"
	robj="blowfish.o"
	cflg=""
	aflg=""
	;;
  esac
  (
  echo '# uncomment the following line for debug code'
  echo '#DEBUG=-DDEBUG'
  if [ "$VERSION" = "1" ]
  then
    echo "ADDON=randomd"
  fi
  echo "CRYPTOOBJ1=$cobj"
  echo "CRYPTOOBJ2=$robj"
  echo "CRYPTOFLG=$cflg"
  echo "CC=gcc"
  echo "AS=as"
  echo "LINK=gcc"
  echo "CBASE=$CFLAGS -Wall -O3$INLINE"
  echo "LFLAGS=-s $LFLAGS"
  if [ "$ASFLAGS" != "" ]
  then
    echo "ASFLAGS=$ASFLAGS $aflg"
  else
    echo "ASFLAGS=$aflg"
  fi
  cat $mf
  ) > Makefile
else
  echo 'Operating system not (yet) supported. Please port!!!'
  exit 1
fi
