#! /bin/bash

source "buildutils.sh"

# PACKAGE ####################################################################

PACKAGE=GLEW
DEPENDENCIES=

# SETUP ######################################################################

set -e
cd `dirname "$0"`
PREFIX=`pwd`

if [ -e ".${PACKAGE}-BUILT" ]; then
    exit 0
fi

# DEPENDENCIES ###############################################################

build_deps $DEPENDENCIES

# FETCH SOURCE ###############################################################

mkdir -p build
cd build

PACKAGE_URL_REF="${PACKAGE}_URL"
PACKAGE_URL="${!PACKAGE_URL_REF}"
PACKAGE_DIR_REF="${PACKAGE}_DIR"
PACKAGE_DIR="${!PACKAGE_DIR_REF}"
PACKAGE_EXTRACT_REF="${PACKAGE}_EXTRACT"
PACKAGE_EXTRACT="${!PACKAGE_EXTRACT_REF}"
PACKAGE_FILENAME=`basename ${PACKAGE_URL}`

if [ ! -e "${PACKAGE_FILENAME}" ]; then
    echo "Fetching ${PACKAGE_URL} ..."
    curl -L -O "${PACKAGE_URL}"
fi

echo "Extracting ${PACKAGE_FILENAME} ..."
${PACKAGE_EXTRACT} "${PACKAGE_FILENAME}"

echo "Building ${PACKAGE} ..."
cd ${PACKAGE_DIR}

# BUILD STEPS ###############################################################

# GLEW is a mess and won't build on Linux!
rm -Rf config.dos
mv config config.dos
mkdir config
cd config.dos
for f in *; do
    tr -d '\r' < "$f" > "../config/$f"
done
cd ..

chmod +x config/config.guess

if [ x"${ARCH}" = x"Darwin" ]; then
    export MACOSX_DEPLOYMENT_TARGET=$CMAKE_OSX_DEPLOYMENT_TARGET
    export MACOSX_SYSROOT=$CMAKE_OSX_SYSROOT
    MACOSX_ARCHFLAGS=""
    for archflag in $CMAKE_OSX_ARCHITECTURES; do
        MACOSX_ARCHFLAGS+="-arch $archflag "
    done;
    export MACOSX_ARCHFLAGS
    export CFLAGS="-isysroot $MACOSX_SYSROOT $MACOSX_ARCHFLAGS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET $CFLAGS"
    export CXXFLAGS="-isysroot $MACOSX_SYSROOT $MACOSX_ARCHFLAGS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET $CXXFLAGS"
    export LDFLAGS="$MACOSX_ARCHFLAGS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET $LDFLAGS"

    export CFLAGS_ENV="-isysroot $MACOSX_SYSROOT $MACOSX_ARCHFLAGS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
    export LDFLAGS_ENV="$MACOSX_ARCHFLAGS -mmacosx-version-min=$MACOSX_DEPLOYMENT_TARGET"
fi

GLEW_DEST="${PREFIX}/build" \
    INCDIR="${PREFIX}/include/GL" \
    make install

# LIBDIR seems to be ignored
if [ -e lib/libGLEW.a ] ; then
	install -m 644 "lib/libGLEW.a" "${PREFIX}/lib"
fi

if [ x"${ARCH}" = x"Windows" ]; then
    if [ -e lib/libGLEW32.dll.a ] ; then
        install -m 644 "lib/libGLEW32.dll.a" "${PREFIX}/lib"
        install -m 644 "lib/GLEW32.dll" "${PREFIX}/bin"
    fi
else
    if [ -e lib/libGLEW32.a ] ; then
        install -m 644 "lib/libGLEW32.a" "${PREFIX}/lib"
    fi
fi

##############################################################################

cd "${PREFIX}"
touch ".${PACKAGE}-BUILT"

##############################################################################
