#ifdef __USAGE
#build [debug] [all] | [small | compact | medium | large | huge | 386]...
#
#Rebuild InterDesk access libraries.  Each library is built unconditionally,
#  to prevent the mixing of different memory model object files in a
#  library.
#endif

export DBG=
export C_CMD=wcc
export C_FLAGS='-m$(MODEL) -2 -5 -oilrt -w3 -zc -zt1024'
export C_32_CMD=wcc386
export C_32_FLAGS='-ms -3r -oilrt -zc -w3'
export MAKE_PARAM=-u

make_model()
{
  if test "$BLD_MDL" = "small"
  then
    export MODEL=s
  elif test "$BLD_MDL" = "large"
  then
    export MODEL=l
  elif test "$BLD_MDL" = "compact"
  then
    export MODEL=c
  elif test "$BLD_MDL" = "medium"
  then
    export MODEL=m
  elif test "$BLD_MDL" = "huge"
  then
    export MODEL=h
  elif test "$BLD_MDL" = "386"
  then
    export MODEL=3r
    export COMPILE_CMD="$C_32_CMD"
    export COMPILE_FLAGS="$C_32_FLAGS"
    export LIB="$MODEL$DBG"

    if test "$DBG" = "dbg"
    then
      export COMPILE_FLAGS="$COMPILE_FLAGS -d2"
    fi

    if make $MAKE_PARAM MODEL="$MODEL" COMPILE_CMD="$COMPILE_CMD" COMPILE_FLAGS="$COMPILE_FLAGS" LIB="$LIB"
    then
      return;
    else
      echo "Error making!"
      exit;
    fi
  else
    echo "Invalid memory model ($BLD_MDL)!"
    exit
  fi

  export LIB="$MODEL$DBG"
  export COMPILE_CMD="$C_CMD"
  export COMPILE_FLAGS="$C_FLAGS"

  if test "$DBG" = "dbg"
  then
    export COMPILE_FLAGS="$COMPILE_FLAGS -d2"
  fi

  if make $MAKE_PARAM MODEL="$MODEL" COMPILE_CMD="$COMPILE_CMD" COMPILE_FLAGS="$COMPILE_FLAGS" LIB="$LIB"
  then
    return;
  else
    echo "Error making!"
    exit;
  fi
}

if test "$1" = "debug"
then
  export DBG=dbg
  shift 1
fi

if test "$1" = "all"
then
  export BLD_MDL=small
  make_model $BLD_MDL

  export BLD_MDL=medium
  make_model $BLD_MDL

  export BLD_MDL=compact
  make_model $BLD_MDL

  export BLD_MDL=large
  make_model $BLD_MDL

  export BLD_MDL=huge
  make_model $BLD_MDL

  export BLD_MDL=386
  make_model $BLD_MDL
  exit
fi

while true
do
  if test "$1" = ""
  then
    exit
  fi

  export BLD_MDL=$1
  make_model $BLD_MDL

  shift 1
done
