#!/bin/sh

if [ -n "${TRAVIS_BUILD_DIR}" ]; then
  set -e
fi

# use some defaults if not running under travis ci
: ${SASS_LIBSASS_PATH:?SASS_LIBSASS_PATH should point to libsass sources}
: ${BUILD:?Please configure BUILD as either "shared" or "static"}
: ${AUTOTOOLS:?Need to know wheter to use AUTOTOOLS - set it to "yes" or "no"}

. ./script/bootstrap
: ${PREFIX:=${TRAVIS_BUILD_DIR-$(pwd)}/build}

SASS_SASSC_PATH="${PREFIX}"
export SASS_SASSC_PATH
export SASS_LIBSASS_PATH

export EXTRA_CFLAGS
export EXTRA_CXXFLAGS
export EXTRA_LDFLAGS

travis_fold() {
  if [ -n "${TRAVIS_BUILD_DIR}" ]; then
      printf "travis_fold:$1:$2\r"
  fi
}

if [ "${COVERAGE}" = "yes" ]; then
  COVERAGE_OPT="--enable-coverage"
  EXTRA_CFLAGS="--coverage"
  EXTRA_CXXFLAGS="--coverage"
  EXTRA_LDFLAGS="--coverage"
else
  COVERAGE_OPT="--disable-coverage"
fi

uname_s="$(uname -s)"
if [ "${uname_s%%-.*}" = "MINGW32_NT" ]; then
  MAKE_OPTS="$MAKE_OPTS -j1 V=1"
else
  MAKE_OPTS="$MAKE_OPTS -j5 V=1"
fi
SINGLE_MAKE_OPS="$MAKE_OPTS -j1 V1"

if [ "${AUTOTOOLS}" = "yes" ]; then

  if [ "${BUILD}" = "static" ]; then
    SHARED_OPT="--disable-shared --enable-static"
  else
    # Makefile of sassc wants to link to static
    SHARED_OPT="--enable-shared --enable-static"
  fi

  travis_fold start libsass
  (cd ${SASS_LIBSASS_PATH} &&
  autoreconf --force --install &&
  ./configure --disable-tests $COVERAGE_OPT \
    --disable-silent-rules \
    --prefix=${PREFIX} \
    ${SHARED_OPT} &&
  ${MAKE:=make} $MAKE_OPTS clean &&
  ${MAKE} $MAKE_OPTS all &&
  ${MAKE} install ) || exit 2
  travis_fold end libsass

  travis_fold start configure
  autoreconf --force --install &&
  ./configure \
    --with-libsass="${PREFIX}" \
    --disable-silent-rules \
    --prefix=$PREFIX \
    $COVERAGE_OPT \
    ${SHARED_OPT} || exit 3
  travis_fold end configure
fi

# Don't try "all" and "install" in parallel
${MAKE:=make} $MAKE_OPTS clean &&
${MAKE} $SINGLE_MAKE_OPTS BUILD=${BUILD} PREFIX=${PREFIX} all install &&
echo successfully compiled sassc &&
echo AUTOTOOLS=$AUTOTOOLS COVERAGE=$COVERAGE BUILD=$BUILD &&
/usr/bin/env LD_LIBRARY_PATH="${SASS_LIBSASS_PATH}/lib" $PREFIX/bin/sassc -v

if [ -n "${TRAVIS_BUILD_DIR}" ]; then
  set +e
fi