|
| 1 | +AC_PREREQ(2.62) |
| 2 | +AC_INIT([DESCRIPTION]) |
| 3 | + |
| 4 | +: ${R_HOME=`R RHOME`} |
| 5 | +if test -z "${R_HOME}"; then |
| 6 | + echo "could not determine R_HOME" |
| 7 | + exit 1 |
| 8 | +fi |
| 9 | + |
| 10 | +LTO=-flto |
| 11 | +CXX=$(${R_HOME}/bin/R CMD config CXX) $(LTO) |
| 12 | + |
| 13 | +AC_LANG(C++) |
| 14 | +AC_REQUIRE_CPP |
| 15 | +AC_PROG_CXX |
| 16 | + |
| 17 | +AC_ARG_ENABLE([lto], |
| 18 | +[AS_HELP_STRING([--enable-lto],[enable link-time optimization @<:@yes@:>@])], |
| 19 | +[want_lto="${enableval}"], [want_lto=yes]) |
| 20 | +if test "x${want_lto}" != xno; then |
| 21 | + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main (void) { return 0; }]])], |
| 22 | + [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) LTO=""]) |
| 23 | +fi |
| 24 | + |
| 25 | +if test "${GXX}" = yes && test -z "${LTO}"; then |
| 26 | + gxx_version=`${CXX} -v 2>&1 | grep "^.*g.. version" | sed -e 's/^.*g.. version *//'` |
| 27 | + case ${gxx_version} in |
| 28 | + 1.*|2.*|3.*|4.0.*|4.1.*|4.2.*|4.3.*|4.4.*|4.5.*|4.6.*|4.7.*|4.8.*) |
| 29 | + AC_MSG_WARN([It is preferable to use g++ version 4.9 or greater with rstanarm.]) |
| 30 | + ;; |
| 31 | + *) |
| 32 | + LTO=-flto=jobserver |
| 33 | + esac |
| 34 | +fi |
| 35 | + |
| 36 | +if [[ $CXX == *"clang"* ]] && test -z "${LTO}"; then |
| 37 | + clang_version=`${CXX} --version 2>&1 | grep "version"` |
| 38 | + if [[ $clang_version == *"Apple"* ]]; then |
| 39 | + clang_version=`${CXX} --version 2>&1 | grep "version"` | \ |
| 40 | + sed -e 's/^Apple LLVM version *//' |
| 41 | + case ${clang_version} in 2.*|3.*|4.*5.*|6.*|7.*|8.*) |
| 42 | + AC_MSG_WARN([It is preferable to use Apple LLVM version 9 or greater with rstanarm.]) |
| 43 | + ;; |
| 44 | + *) |
| 45 | + LTO="-flto=thin" |
| 46 | + esac |
| 47 | + fi |
| 48 | + elif |
| 49 | + case ${clang_version} in 1.*|2.*|3.1.*|3.2.*|3.3.*|3.4.*|3.5.*|3.6.*|3.7.*|3.8.*) |
| 50 | + AC_MSG_WARN([It is preferable to use clang++ version 3.9 or greater with rstanarm.]) |
| 51 | + ;; |
| 52 | + *) |
| 53 | + LTO="-flto=thin" |
| 54 | + esac |
| 55 | + fi |
| 56 | +fi |
| 57 | + |
| 58 | +AC_SUBST(LTO) |
| 59 | +AM_CONDITIONAL(BUILD_LTO, [test "x${want_lto}" != xno]) |
| 60 | + |
| 61 | +AC_CONFIG_FILES([src/Makevars]) |
| 62 | +AC_OUTPUT |
0 commit comments