#!/bin/sh
set -x
rm -rf ./config.cache

if [ x"$1" = x ]; then
  name=`uname -n`
else
  if [ x"$1" = x"--" ]; then
    name=`uname -n`
  else
    name="$1"
  fi
  shift
fi

if [ x"$CFLAGS" = x ]; then
  CFLAGS="-g"
  export CFLAGS
fi
if [ x"$LDFLAGS" = x ]; then
  LDFLAGS="-g"
  export LDFLAGS
fi

GCCFLAGS="-W -Wall -Wno-implicit-int"
STRICTFLAGS="-pedantic -Wall -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wredundant-decls -Wnested-externs -Wconversion -Wno-implicit-int"

CF="--config-cache"
BIT64="-m64 -mcpu=v9"
LARGEFILE="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
LARGEFILE64="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"

# handle saord builds specially
if [ x$name = xsaord ]; then
  SAORDPREFIX=/soft/saord
  SAORDCC="gcc"
  SAORDCFLAGS="-O2"
  platform=`uname`
  case $platform in
  Darwin)
    USEDL="no"
    ;;
  SunOS)
    SAORDCC="cc"
    SAORDCFLAGS="-g"
    ;;
  *)
    USEDL="yes"
   ;;
  esac
fi

echo "configure for: " $name

case $name in
  cc)
  ./configure	$CF					\
		CC=cc CFLAGS="$CFLAGS" $*
  ;;

  gcc)
  ./configure	$CF					\
		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS" $*
  ;;

  strict)
  ./configure	$CF					\
		CC=gcc CFLAGS="$CFLAGS $STRICTFLAGS" $*
  ;;

# large file support
  large)
  ./configure	$CF 							\
		--without-tcl 						\
	  	--with-filter-cc=gcc					\
		--prefix=${HOME}					\
		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS $LARGEFILE"		\
      		$*
  ;;

# Solaris 64bit support
  64bit)
  ./configure	$CF 							\
		--without-tcl 						\
	  	--with-filter-cc=gcc					\
      		--with-filter-cflags="$BIT64"				\
		--prefix=${HOME}					\
		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS $BIT64 LARGEFILE64"	\
      		LDFLAGS="-g $BIT64 -L/usr/lib/sparcv9" $*
  ;;

# Solaris 64bit and largefile support
  large64)
  ./configure	$CF 							\
		--without-tcl 						\
	  	--with-filter-cc=gcc					\
      		--with-filter-cflags="$BIT64"				\
		--prefix=${HOME}					\
		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS $BIT64 $LARGEFILE"	\
      		LDFLAGS="-g $BIT64 -L/usr/lib/sparcv9" $*
  ;;

  opt)
  ./configure 	$CF					\
		--prefix=${HOME}			\
      		--enable-dl=yes				\
  		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS -O2"	\
		$*
  ;;

  dl)
  ./configure	$CF					\
		--enable-dl=yes CC=gcc CFLAGS="$CFLAGS $GCCFLAGS" $*
  ;;

  shared)
  ./configure 	$CF					\
      		--enable-shared=yes			\
  		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS"	\
		$*
  ;;

  shlib)
  ./configure 	$CF					\
      		--enable-shared=link			\
  		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS"	\
		$*
  ;;

  shdl)
  ./configure 	$CF					\
      		--enable-shared=link			\
      		--enable-dl=yes				\
  		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS"	\
		$*
  ;;

  mainlib)
  ./configure 	$CF					\
      		--enable-mainlib=yes			\
  		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS"	\
		$*
  ;;

  shmainlib)
  ./configure 	$CF					\
      		--enable-shared=yes			\
      		--enable-mainlib=yes			\
  		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS"	\
		$*
  ;;

  noansi)
  ./configure	$CF					\
		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS -DNO_ANSI_FUNC" $*
  ;;

  saord*)
  ./configure 	$CF					\
		--prefix=$SAORDPREFIX			\
      		--enable-dl="$USEDL"			\
      		--with-filter-cflags="$SAORDCFLAGS"	\
      		CC=$SAORDCC CFLAGS="$CFLAGS $SAORDCFLAGS"	\
 		$*
  ;;

  bokhara*)
  ./configure 	$CF					\
		--prefix=$HOME				\
      		--enable-dl=yes				\
      		--with-filter-cflags="-O2"		\
  		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS"	\
 		$*
  ;;

  cfa208*|moscow*)
  ./configure 	$CF					\
		--prefix=${HOME}			\
      		--enable-dl=yes				\
  		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS"	\
		$*
  ;;

  akela*|karapet*)
  ./configure 	$CF					\
		--prefix=${HOME}			\
      		--with-filter-cflags="-O2"		\
		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS" $*
  ;;

  ds9*)
  ./configure 	$CF					\
		--prefix=${HOME}			\
      		--enable-dl=yes				\
      		--enable-fpu-double=yes			\
		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS" $*
  ;;

  jove*|JOVE*)
  ./configure 	$CF					\
		--prefix=${HOME}			\
		CC=icc CFLAGS="$CFLAGS"  $*
  ;;

  apple*|APPLE*)
  ./configure 	$CF					\
  		--prefix=${HOME} $*
  ;;

  mred)
  ./configure 	$CF					\
		--prefix=${HOME}/pub/usr/local		\
		 CC=cc CFLAGS="$CFLAGS" $*
  ;;

  mocha*|Mocha*|luwak*|*Luwak*|decaf*|Decaf*|barista*|Barista*|knomad*|Knomad*)
  ./configure	$CF 							\
	  	--with-filter-cc=gcc					\
		--prefix=/usr/local					\
      		--with-filter-cflags="-O2"		\
		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS $LARGEFILE -O2"	\
      		$*
  ;;

  voyager*|VOYAGER*)
  ./configure 	$CF					\
  		--enable-posix_spawn --prefix=${HOME}   \
		CC=gcc CFLAGS="$CFLAGS $GCCFLAGS" $*
  ;;

  *)
  ./configure 	$CF $*
  ;;

esac
