#! /bin/sh 
#         $Id: $
#         %full_filespec: configure~bln_mpt1!0.31.42:shsrc:bln_12xx!6 %

a_unique_file="pfe.spec"
if test ! -r $a_unique_file ; then
 a_prog=$0
 a_topdir=`echo $a_prog|sed 's%/[^/][^/]*$%%'`
 if test -r $a_topdir/$a_unique_file 
 then exec ${CONFIG_SHELL-/bin/sh} $a_topdir/pfe/configure $*
 else 
   echo "could not find pfe toplevel directory"
   exit 1
 fi
fi

use_static=""
use_mode=""
seen_prefix=""
args=""

for i in $* ; do
    case $i in
      --prefix|--prefix=*) seen_prefix="yes" 
	args="$args $i" ;;
      --disable-shared) use_static="-static" 
	args="$args $i" ;;
      --enable-maintainer-mode)
	    test -z "$USER" && USER=`id -un 2>/dev/null`
	    test -z "$USER" && USER=`echo $HOME | sed -e 's:.*/::'`
	    test -z "$USER" && USER=`maintainer`
	    use_mode="-$USER" 
	args="$args $i" ;;
      CC=*)   CC=`echo $i | sed -e 's/[^=]*=//'` ;;
      HOST=*) HOST=`echo $i | sed -e 's/[^=]*=//'` ;;
      *) args="$args $i" ;;
    esac
done

# check for the build-directory

_CC="$CC"
_NULL="$NULL"
test "_$_NULL" = "_" && _NULL="/dev/null"
test "_$_CC" = "_" && _CC="gcc" 

machine="$HOST" ; 
umachine=`eval "$_CC -dumpmachine 2>$_NULL"`
if test -z "$machine" ; then machine="$umachine" ; fi
if test -z "$machine" ; then machine=`sh config.guess` ; fi
if test -z "$machine" ; then 
    echo "could not find machine name :" `uname` >&2
    exit 1;
fi

configurelist=""
for C in */configure; do
test -f $C && configurelist=`echo $configurelist $C | sed -e 's,/configure,,'`
done

PREFER=`grep 'PREFER *=' Makefile | sed -e 's: *PREFER *= *::' -e 's: *$::'`
test -z "$PREFER$PREFER1" && PREFER1="pfe"

sortedlist=""
for q in 1 2 ; do for C in $configurelist ; do
  v="next='false' ; case `echo $C | sed -e 's:.*/::'` in "
  v="$v $PREFER)  test $q = 1 && next='true' ;;"
  v="$v *) test $q = 2 && next='true' ;;"
  v="$v esac ; \$next"
#  echo $v
  if eval "$v" ; then # echo $q : $C
    sortedlist="$sortedlist $C"
  fi
done done
echo sortedlist = $sortedlist

# --- start configure ---
rr=""
for C in $sortedlist ; do
echo # just an empty line before

if test -z "$use_mode" ; then
  D="$machine"
  test -d "Release"       || mkdir "Release"
  test -d "Release/$D"    || mkdir "Release/$D"
  test -d "Release/$D/$C" || mkdir "Release/$D/$C"
  rr="$rr  Release/$D/$C"  ; echo  "Release/$D/$C"
  (cd     "Release/$D/$C" && sh ../../../$C/configure $args $prefixopt)
else
  D="$machine$use_mode"
  test -d "Release" || mkdir "Release"
  test -d "Debug"   || mkdir "Debug"

  if test -z "$use_static" ; then
    test -d "Release/$D"    || mkdir "Release/$D"
    test -d "Release/$D/$C" || mkdir "Release/$D/$C"
    rr="$rr  Release/$D/$C"  ; echo  "Release/$D/$C"
    (cd     "Release/$D/$C" && sh ../../../$C/configure $args $prefixopt)
  fi

  test -d "Release/$D-static"    || mkdir "Release/$D-static"
  test -d "Release/$D-static/$C" || mkdir "Release/$D-static/$C"
  rr="$rr  Release/$D-static/$C"  ; echo  "Release/$D-static/$C"
  (cd     "Release/$D-static/$C" && sh ../../../$C/configure \
    $args $prefixopt --disable-shared --program-suffix=-static )

  test -d "Release/$D-fig"    || mkdir "Release/$D-fig"
  test -d "Release/$D-fig/$C" || mkdir "Release/$D-fig/$C"
  rr="$rr  Release/$D-fig/$C"  ; echo  "Release/$D-fig/$C"
  (cd     "Release/$D-fig/$C" && sh ../../../$C/configure \
    $args $prefixopt --with-fig=1 --disable-shared --program-suffix=-fig)

  test -d "Release/$D-regs"    || mkdir "Release/$D-regs"
  test -d "Release/$D-regs/$C" || mkdir "Release/$D-regs/$C"
  rr="$rr  Release/$D-regs/$C"  ; echo  "Release/$D-regs/$C"
  (cd     "Release/$D-regs/$C" && sh ../../../$C/configure \
    $args $prefixopt --with-regs=2 --disable-shared --program-suffix=-regs)

  test -d "Release/$D-small" || mkdir "Release/$D-small"
  test -d "Release/$D-small/$C" || mkdir "Release/$D-small/$C"
  rr="$rr  Release/$D-small/$C"  ; echo  "Release/$D-small/$C"
  (cd     "Release/$D-small/$C" && sh ../../../$C/configure \
    $args $prefixopt --with-regs=2 --disable-shared --program-suffix=-small \
     --without-float)

  # and the same with Debug

  test -d "Debug/$D-static"    || mkdir "Debug/$D-static"
  test -d "Debug/$D-static/$C" || mkdir "Debug/$D-static/$C"
  rr="$rr  Debug/$D-static/$C"  ; echo  "Debug/$D-static/$C"
  (cd     "Debug/$D-static/$C" && sh ../../../$C/configure \
    $args $prefixopt --disable-shared --program-suffix=-static- )

  test -d "Debug/$D-fig"    || mkdir "Debug/$D-fig"
  test -d "Debug/$D-fig/$C" || mkdir "Debug/$D-fig/$C"
  rr="$rr  Debug/$D-fig/$C"  ; echo  "Debug/$D-fig/$C"
  (cd     "Debug/$D-fig/$C" && sh ../../../$C/configure \
    $args $prefixopt --with-fig=1 --disable-shared --program-suffix=-fig-)

  test -d "Debug/$D-regs"    || mkdir "Debug/$D-regs"
  test -d "Debug/$D-regs/$C" || mkdir "Debug/$D-regs/$C"
  rr="$rr  Debug/$D-regs/$C"  ; echo  "Debug/$D-regs/$C"
  (cd     "Debug/$D-regs/$C" && sh ../../../$C/configure \
    $args $prefixopt --with-regs=2 --disable-shared --program-suffix=-regs-)

  test -d "Debug/$D-small"    || mkdir "Debug/$D-small"
  test -d "Debug/$D-small/$C" || mkdir "Debug/$D-small/$C"
  rr="$rr  Debug/$D-small/$C"  ; echo  "Debug/$D-small/$C"
  (cd     "Debug/$D-small/$C" && sh ../../../$C/configure \
    $args $prefixopt --with-regs=2 --disable-shared --program-suffix=-small- \
     --without-float)
fi
done 

rm -f config.date
echo '___ configure`d ____'
for i in $rr ; do
  echo $i
  echo $i >config.date
done

test ! -z "$rr"
exit

