12
12
13
13
set -e # Exit immediately if a simple command exits with a non-zero status
14
14
15
+ if [ " x$2 " != " x" ]; then
16
+ R_CMD=" $2 "
17
+ else
18
+ R_CMD=" R"
19
+ fi
20
+
15
21
# Extra .so for the following archs will be installed (in addition to the
16
22
# native .so):
17
23
# TARGET_ARCHS="/ppc /x86_64 /ppc64"
@@ -20,16 +26,16 @@ SINGLE_ARCH=true
20
26
21
27
# Change dynamic shared library path for
22
28
ARCH=` uname -m` # x86_64 or arm64
23
- UNIVERSAL_GFORTRAN=` gfortran --version | grep 12.2.0`
24
-
25
- if [ ! -z " $UNIVERSAL_GFORTRAN " -a " $ARCH " == " x86_64" ]; then
26
- LOCAL_DYLIB_DIR=" /usr/local/lib"
27
- LOCAL_FORTRAN_DYLIB_DIR=" /opt/gfortran/lib/gcc/x86_64-apple-darwin20.0/12.2.0"
28
- elif [ ! -z " $UNIVERSAL_GFORTRAN " -a " $ARCH " == " arm64" ]; then
29
- LOCAL_DYLIB_DIR=" /usr/local/lib"
30
- LOCAL_FORTRAN_DYLIB_DIR=" /opt/gfortran/lib/gcc/aarch64-apple-darwin20.0/12.2.0"
29
+ GFORTRAN_VERSION=` gfortran --version | grep " GNU Fortran" | awk -F ' ' ' {print $4}' `
30
+ GFORTRAN_MAJOR_VERSION=` echo " $GFORTRAN_VERSION " | awk -F ' .' ' {print $1}' `
31
+
32
+ LOCAL_DYLIB_DIR=" /usr/local/lib"
33
+
34
+ if [ " $GFORTRAN_MAJOR_VERSION " -ge 12 -a " $ARCH " == " x86_64" ]; then
35
+ LOCAL_FORTRAN_DYLIB_DIR=" /opt/gfortran/lib/gcc/x86_64-apple-darwin20.0/$GFORTRAN_VERSION "
36
+ elif [ " $GFORTRAN_MAJOR_VERSION " -ge 12 -a " $ARCH " == " arm64" ]; then
37
+ LOCAL_FORTRAN_DYLIB_DIR=" /opt/gfortran/lib/gcc/aarch64-apple-darwin20.0/$GFORTRAN_VERSION "
31
38
elif [ " $ARCH " == " x86_64" ]; then
32
- LOCAL_DYLIB_DIR=" /usr/local/lib"
33
39
LOCAL_FORTRAN_DYLIB_DIR=" /usr/local/gfortran/lib"
34
40
else
35
41
LOCAL_DYLIB_DIR=" /opt/R/arm64/lib"
@@ -47,9 +53,11 @@ elif uname -a | grep -q "Version 15."; then
47
53
DYLIB_FILES=" libgcc_s.1.dylib libgfortran.3.dylib libreadline.5.2.dylib libreadline.dylib libquadmath.0.dylib"
48
54
else
49
55
# Builds on any macOS >= High Sierra with High Sierra as **target**.
50
- # On arm64 systems, libgcc_s.1.dylib is replaced with libgcc_s.1.1.dylib.
56
+ # From R 4.3 libgcc_s.1.dylib is replaced with libgcc_s.1.1.dylib.
51
57
52
- if [ -z " $UNIVERSAL_GFORTRAN " ]; then
58
+ R_MINOR_VERSION=` echo ' cat(strsplit(version$minor,split=".",fixed=TRUE)[[1L]][1L])' | $R_CMD --no-echo`
59
+
60
+ if [ " $R_MINOR_VERSION " -le 3 ]; then
53
61
DYLIB_FILES=" libgcc_s.1.dylib libgfortran.5.dylib libquadmath.0.dylib"
54
62
else
55
63
DYLIB_FILES=" libgcc_s.1.1.dylib libgfortran.5.dylib libquadmath.0.dylib"
@@ -77,21 +85,14 @@ srcpkg_filename=`echo "$srcpkg_filepath" | sed 's/.*\///'`
77
85
78
86
FILENAME_PARSER=" ^(.*)_([^_]+)\.tar\.gz$"
79
87
pkgname=` echo " $srcpkg_filename " | sed -E " s/$FILENAME_PARSER /\1/" `
80
- # pkgversion=`echo "$srcpkg_filename" | sed -E "s/$FILENAME_PARSER/\2/"`
81
-
82
- if [ " x$2 " != " x" ]; then
83
- R_CMD=" $2 "
84
- else
85
- R_CMD=" R"
86
- fi
87
88
88
89
if [ " x$3 " != " x" ]; then
89
90
R_LIBS=" $3 "
90
91
else
91
92
R_LIBS=" ` $R_CMD CMD sh -c ' echo "$R_HOME"' ` /library"
92
93
fi
93
94
94
- if [ -z " $UNIVERSAL_GFORTRAN " ]; then
95
+ if [ " $R_MINOR_VERSION " -le 3 ]; then
95
96
R_xyversion=` echo ' cat(version$major,strsplit(version$minor,split=".",fixed=TRUE)[[1L]][1L],sep=".");if(version$arch=="aarch64")cat("-arm64")' | $R_CMD --no-echo`
96
97
else
97
98
R_xyversion=` echo ' cat(version$major,strsplit(version$minor,split=".",fixed=TRUE)[[1L]][1L],sep=".");if(version$arch=="aarch64")cat("-arm64") else cat("-x86_64")' | $R_CMD --no-echo`
0 commit comments