#!/bin/sh

echo MDFS: Running configure

platform=`uname`

makevars_template=Makevars.in

PKG_CPPFLAGS=
PKG_CXXFLAGS="\$(C_VISIBILITY)"
PKG_LIBS=

# Linux and Solaris OpenMP implementations are known to work, use them
# TODO: discover the proper way to activate OpenMP
if [[ "$platform" == "Linux" || "$platform" == "SunOS" ]]; then
  PKG_CXXFLAGS="$PKG_CXXFLAGS \$(SHLIB_OPENMP_CXXFLAGS)"
  PKG_LIBS="$PKG_LIBS \$(SHLIB_OPENMP_CXXFLAGS)"
fi

# we support CUDA on Linux only
if [[ "$platform" == "Linux" ]]; then
  NVCC=`which nvcc 2>/dev/null`
  if [[ ! -z "$NVCC" ]]; then
    CUDA_BIN_DIR="`dirname \"$NVCC\"`"
    CUDA_DIR="`dirname \"$CUDA_BIN_DIR\"`"
    CUDA_INCLUDE_DIR="$CUDA_DIR/include"
    CUDA_LIB_DIR="$CUDA_DIR/lib64"
    PKG_CPPFLAGS="$PKG_CPPFLAGS -I\"$CUDA_INCLUDE_DIR\""
    PKG_CXXFLAGS="$PKG_CXXFLAGS -DWITH_CUDA"
    PKG_LIBS="$PKG_LIBS -L\"$CUDA_LIB_DIR\" -lcudart"
    makevars_template=Makevars.cuda.in
  fi
fi

# R on Solaris uses -G which does not link libstdc++
# use -shared to fix
if [[ "$platform" == "SunOS" ]]; then
  PKG_LIBS="$PKG_LIBS -shared"
fi

cat > src/Makevars <<EOF
PKG_CPPFLAGS = $PKG_CPPFLAGS
PKG_CXXFLAGS = $PKG_CXXFLAGS
PKG_LIBS = $PKG_LIBS
EOF

cat src/$makevars_template >> src/Makevars
