#! /bin/sh

# chicken-config - by Douq Quale with modifications by felix

guiflags="-mwindows -e _mainCRTStartup"
usage="Usage: $0 options ...

Print compiler flags for compiling and linking the C output
from the chicken Scheme compiler version 0.990.

Options:  -cflags	C compiler flags
	  -libs		link flags for chicken basic library
	  -extra-libs	link flags for chicken extra utility library
	  -emb-libs     link flags for linking embedded (no 'main')
          -gui-libs     link flags for linking Win32 GUI library (Cygwin + Mingw32 only)
          -emb-gui-libs link flags for linking embedded Win32 GUI library (Cygwin + Mingw32 only)
          -gui-cflags   C compiler flags for generating Win32 GUI binary (Cygwin + Mingw32 only)
	  -help		this text
	  -home		chicken home directory for installed .scm library files
	  -unsafe       select unsafe libraries (specify before '-[...-]libs' option)
	  -version	chicken compiler version"

# Generate an -Iincludedir flag only if chicken.h isn't in a standard
# include directory.
case "/usr/include" in
    /usr/include|"") INCLUDEDIR=;;
    *) INCLUDEDIR=-I/usr/include;;
esac

# Generate an -Llibdir flag only if the chicken libraries aren't in a
# standard library directory.
case "/usr/lib" in
    /usr/lib|"") LIBDIR=;;
    *) LIBDIR=-L/usr/lib;;
esac 

UNSAFE=""

while :; do
  case "$1" in
    -c|--c|-cf|--cf|-cfl|--cfl|-cfla|--cfla|-cflag|--cflag|-cflags|--cflags)
	echo " -O3 -fomit-frame-pointer -fstrict-aliasing -DHAVE_ALLOCA_H   $INCLUDEDIR ";;

    -gui-c|-gui-cflags|--gui-c|--gui-cflags)
	echo " -O3 -fomit-frame-pointer -fstrict-aliasing -DHAVE_ALLOCA_H   $INCLUDEDIR -DWINDOWS_GUI ";;

    -e|--e|-ex|--ex|-ext|--ext|-extra|--extra|-extra-l|--extra-l|-extra-li|--extra-li|-extra-lib|--extra-lib|-extra-libs|--extra-libs)
	if test -z "$UNSAFE"; then
  	  echo " $LIBDIR -lstuffed-chicken"
        else
          echo " $LIBDIR -lustuffed-chicken"
        fi;;	  

    -m|-em|-emb-libs)
	if test -z "$UNSAFE"; then
  	  echo " $LIBDIR -lembedded-chicken -lm "
        else
          echo " $LIBDIR -luembedded-chicken -lm "
        fi;;	  

    -gui-m|--gui-m|-gui-emb-libs|--gui-emb-libs)
	if test -z "$UNSAFE"; then
  	  echo " $guiflags $LIBDIR -lwin32-embedded-gui-chicken -lm "
        else
          echo " $guiflags $LIBDIR -luwin32-embedded-gui-chicken -lm "
        fi;;	  

    -l|--l|-li|--li|-lib|--lib|-libs|--libs)
	if test -z "$UNSAFE"; then
  	  echo " $LIBDIR -lchicken -lm "
        else
          echo " $LIBDIR -luchicken -lm "
        fi;;	  

    -gui-l|--gui-l|-gui-libs|--gui-libs)
	if test -z "$UNSAFE"; then
  	  echo " $guiflags $LIBDIR -lwin32-gui-chicken -lm "
        else
          echo " $guiflags $LIBDIR -luwin32-gui-chicken -lm "
        fi;;	  

    -he|--he|-hel|--hel|-help|--help)
	echo "$usage"; exit 0;;

    -ho|--ho|-hom|--hom|-home|--home)
	echo "CHICKEN_HOME=/usr/share/chicken";;

    -v|--v|-ve|--ve|-ver|--ver|-vers|--vers|-versi|--versi|-versio|--versio|-version|--version|-build|--build)
	echo 0.990; exit 0;;

    -u|--u|-unsafe|--unsafe)
        UNSAFE=yes;;

    *)
	echo "$usage" 1>&2; exit 1;;
  esac
  shift
  if test $# -eq 0; then exit 0; fi
done

