#!/bin/sh
set -eu
: "${R_HOME:?R_HOME is required}"
if "${R_HOME}/bin/Rscript" --vanilla -e 'quit(status = if (.Platform$OS.type == "windows") 0L else 1L)'; then
  openmp_flags="-fopenmp"
else
  openmp_flags=`"${R_HOME}/bin/R" CMD config SHLIB_OPENMP_CXXFLAGS 2>/dev/null || true`
fi
openmp_definitions=""
if test -n "$openmp_flags"; then openmp_definitions="-DGBITS_HAS_OPENMP=1 -DGMAT_HAS_OPENMP=1 -DGSOLVE_HAS_OPENMP=1 -DGBAYES_HAS_OPENMP=1 -DGCORR_HAS_OPENMP=1 -DGLMA_HAS_OPENMP=1 -DGSCORE_HAS_OPENMP=1"; fi
gbase_root=""
gbayes_root=""
gbase_root=`"${R_HOME}/bin/Rscript" --vanilla -e "cat(find.package('gbase'))"`
export GSUITE_OPENMP_FLAGS="$openmp_flags"
export GSUITE_OPENMP_DEFINITIONS="$openmp_definitions"
export GSUITE_GBASE_ROOT="$gbase_root"
export GSUITE_GBAYES_ROOT="$gbayes_root"
"${R_HOME}/bin/Rscript" --vanilla -e 'x <- readLines("src/Makevars.in", warn = FALSE); replacements <- c("@OPENMP_CXXFLAGS@" = Sys.getenv("GSUITE_OPENMP_FLAGS"), "@OPENMP_DEFINITIONS@" = Sys.getenv("GSUITE_OPENMP_DEFINITIONS"), "@GBASE_ROOT@" = Sys.getenv("GSUITE_GBASE_ROOT"), "@GBAYES_ROOT@" = Sys.getenv("GSUITE_GBAYES_ROOT")); for (key in names(replacements)) x <- gsub(key, replacements[[key]], x, fixed = TRUE); writeLines(x, "src/Makevars", useBytes = TRUE)'
