8000 Merge pull request #4 from isuruf/arm64 · MacPython/gfortran-install@2644c04 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2644c04

Browse files
Merge pull request #4 from isuruf/arm64
MRG: macos arm64 support
2 parents d430fe6 + a0ce626 commit 2644c04

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

gfortran_utils.sh

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,37 @@ if [ "$(uname)" == "Darwin" ]; then
9191
mac_target=${MACOSX_DEPLOYMENT_TARGET:-$(get_macosx_target)}
9292
export MACOSX_DEPLOYMENT_TARGET=$mac_target
9393
GFORTRAN_DMG="${GF_UTIL_DIR}/archives/gfortran-4.9.0-Mavericks.dmg"
94-
GFORTRAN_SHA="$(shasum $GFORTRAN_DMG)"
94+
export GFORTRAN_SHA="$(shasum $GFORTRAN_DMG)"
9595

96+
function install_arm64_cross_gfortran {
97+
curl -L -O https://github.com/isuruf/gcc/releases/download/gcc-10-arm-20210122/gfortran-darwin-arm64.tar.gz
98+
export GFORTRAN_SHA=f10e307dd252f3ddfe0ad9cabd12c60dd206a9c5
99+
if [[ "$(shasum gfortran-darwin-arm64.tar.gz)" != "${GFORTRAN_SHA} gfortran-darwin-arm64.tar.gz" ]]; then
100+
echo "shasum mismatch for gfortran-darwin-arm64"
101+
exit 1
102+
fi
103+
sudo mkdir -p /opt/
104+
sudo cp "gfortran-darwin-arm64.tar.gz" /opt/gfortran-darwin-arm64.tar.gz
105+
pushd /opt
106+
sudo tar -xvf gfortran-darwin-arm64.tar.gz
107+
sudo rm gfortran-darwin-arm64.tar.gz
108+
popd
109+
export FC_ARM64="$(find /opt/gfortran-darwin-arm64/bin -name "*-gfortran")"
110+
local libgfortran="$(find /opt/gfortran-darwin-arm64/lib -name libgfortran.dylib)"
111+
local libdir=$(dirname $libgfortran)
112+
113+
export FC_ARM64_LDFLAGS="-L$libdir -Wl,-rpath,$libdir"
114+
if [[ "${PLAT:-}" == "arm64" ]]; then
115+
export FC=$FC_ARM64
116+
fi
117+
}
96118
function install_gfortran {
97119
hdiutil attach -mountpoint /Volumes/gfortran $GFORTRAN_DMG
98120
sudo installer -pkg /Volumes/gfortran/gfortran.pkg -target /
99121
check_gfortran
122+
if [[ "${PLAT:-}" == "universal2" || "${PLAT:-}" == "arm64" ]]; then
123+
install_arm64_cross_gfortran
124+
fi
100125
}
101126

102127
function get_gf_lib {

0 commit comments

Comments
 (0)
0