|
1 | 1 | SAGE_SPKG_CONFIGURE([rpy2], [ |
2 | | - SAGE_PYTHON_PACKAGE_CHECK([rpy2]) |
| 2 | + SAGE_PYTHON_PACKAGE_CHECK([rpy2]) |
3 | 3 | ], [dnl REQUIRED-CHECK |
4 | | - AC_REQUIRE([SAGE_SPKG_CONFIGURE_R]) |
5 | | - dnl rpy2 is only needed when there is a usable system R |
6 | | - AS_VAR_IF([sage_spkg_install_r], [yes], [dnl |
7 | | - AS_VAR_IF([sage_use_system_r], [installed], [dnl |
8 | | - dnl Legacy SPKG installation of r |
9 | | - AS_VAR_SET([SPKG_REQUIRE], [yes]) |
10 | | - ], [dnl No system package, no legacy SPKG installation |
11 | | - AS_VAR_SET([SPKG_REQUIRE], [no]) |
12 | | - ]) |
| 4 | + dnl rpy2 is only needed when there is a usable system R |
| 5 | + dnl Check for the R installation and version |
| 6 | + dnl https://rpy2.github.io/doc/v3.4.x/html/overview.html#requirements |
| 7 | + m4_pushdef([SAGE_R_MINVER], ["3.5"]) |
| 8 | + PKG_CHECK_MODULES([R], [libR >= SAGE_R_MINVER], [dnl |
| 9 | + AC_PATH_PROG([R_EXECUTABLE], [R]) |
| 10 | + AS_IF([test "x$R_EXECUTABLE" = x], [dnl |
| 11 | + AC_MSG_NOTICE([R is not found]) |
| 12 | + dnl No R found, so do not require rpy2 package |
| 13 | + AS_VAR_SET([SPKG_REQUIRE], [no]) |
| 14 | + ], [dnl Extract R version |
| 15 | + AC_MSG_CHECKING([for version of R executable]) |
| 16 | + R_VERSION=$($R_EXECUTABLE --version | sed -n 's/^R version \([[0-9.]]*\).*/\1/p') |
| 17 | + AC_MSG_RESULT([$R_VERSION]) |
| 18 | + dnl Extract libR version |
| 19 | + AC_MSG_CHECKING([for version of libR]) |
| 20 | + LIBR_VERSION=$(pkg-config --modversion libR) |
| 21 | + AC_MSG_RESULT([$LIBR_VERSION]) |
| 22 | + dnl Compare R and libR versions |
| 23 | + AS_IF([test "x$R_VERSION" = "x$LIBR_VERSION"], [dnl |
| 24 | + AC_MSG_NOTICE([R and libR versions match ($R_VERSION)]) |
| 25 | + dnl Good system R is found, require rpy2 package |
| 26 | + AS_VAR_SET([SPKG_REQUIRE], [yes]) |
| 27 | + ], [dnl R and libR versions do not match |
| 28 | + AC_MSG_NOTICE([R version ($R_VERSION) does not match libR version ($LIBR_VERSION)]) |
| 29 | + AS_VAR_SET([SPKG_REQUIRE], [no]) |
| 30 | + ]) |
13 | 31 | ]) |
| 32 | + ], [dnl libR not found or outdated |
| 33 | + AS_VAR_SET([SPKG_REQUIRE], [no]) |
| 34 | + ]) |
| 35 | + m4_popdef([SAGE_R_MINVER]) |
14 | 36 | ]) |
0 commit comments