#!/bin/sh

CC="${CC-gcc}"
CFLAGS="-I. -O3 -g -Wall -Wno-unused-function $CFLAGS"
LDFLAGS="-lm"

MACHINE="`./config.guess`"

case "${MACHINE#*-*-}" in
  linux*)
    SYS=LINUX
    ;;
  darwin*)
    SYS="MACOSX"
    CFLAGS="$CFLAGS -falign-loops=16"
    ;;
  cygwin*)
    SYS=SYGWIN
    CFLAGS="$CFLAGS -mno-cygwin"
    LDFLAGS="$LDFLAGS -mno-cygwin"
    ;;
  mingw*)
    SYS="MINGW"
    ;;
  *)
    echo "unknown system $MACHINE, assuming linux-like"
    ;;
esac

case "${MACHINE%%-*}" in
  i*86)
    ARCH="X86_32"
    CFLAGS="$CFLAGS -DARCH_X86"
    AS="nasm"
    ASFLAGS="$ASFLAGS -O2"
    if [ "$SYS" = MACOSX ]; then
      ASFLAGS="$ASFLAGS -f macho -DPREFIX"
    elif [ "$SYS" = CYGWIN -o "$SYS" = MINGW ]; then
      ASFLAGS="$ASFLAGS -f win32 -DPREFIX"
    elif [ "$SYS" = NETBSD ]; then
      ASFLAGS="$ASFLAGS -f aoutb"
    else
      ASFLAGS="$ASFLAGS -f elf"
    fi
    ;;
  x86_64)
    ARCH="X86_64"
    CFLAGS="$CFLAGS -DARCH_X86"
    AS="yasm"
    ASFLAGS="$ASFLAGS -f elf -m amd64"
    ;;
  powerpc*)
    ARCH="PPC"
    if [ $SYS = MACOSX ]; then
      CFLAGS="$CFLAGS -faltivec -fastf -mcpu=G4"
    else
      CFLAGS="$CFLAGS -maltivec -mabi=altivec"
    fi
    ;;
  *)
    ARCH="`echo ${MACHINE%%-*} | tr a-z A-Z`"
    echo "unknown platform $ARCH, disabling all cpu-specific optimizations"
    ;;
esac

CFLAGS="$CFLAGS -DARCH_$ARCH -DSYS_$SYS"

HAVE_LINALG=no
if pkg-config --exists mosek ; then
    HAVE_LINALG=yes
    CFLAGS="$CFLAGS -DHAVE_LINALG `pkg-config --cflags mosek`"
    LDFLAGS="$LDFLAGS `pkg-config --libs mosek`"
fi

cat > config.mak << EOF
AS=$AS
CC=$CC
ASFLAGS=$ASFLAGS
CFLAGS=$CFLAGS
LDFLAGS=$LDFLAGS
ARCH=$ARCH
SYS=$SYS
HAVE_LINALG=$HAVE_LINALG
CONFIGURE_ARGS=`for A in "$@" ; do echo -n " '$A'" ; done`
EOF

