forked from exaloop/codon
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathget_system_libs.sh
More file actions
executable file
·69 lines (59 loc) · 1.8 KB
/
get_system_libs.sh
File metadata and controls
executable file
·69 lines (59 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/env bash
set -e
check_exists() {
local file="$1"
if [ ! -e "$file" ]; then
echo "Error: File '$file' does not exist." >&2
exit 1
fi
}
UNAME="$(uname -s)"
if [ "$UNAME" = "Linux" ]; then
LIBGFORTRAN_BASE="libgfortran.so.5"
LIBQUADMATH_BASE="libquadmath.so.0"
LIBGCC_BASE="libgcc_s.so.1"
elif [ "$UNAME" = "Darwin" ]; then
LIBGFORTRAN_BASE="libgfortran.5.dylib"
LIBQUADMATH_BASE="libquadmath.0.dylib"
LIBGCC_BASE="libgcc_s.1.1.dylib"
else
echo "WARNING: Could not autodetect platform type ('uname -s' = $UNAME); assuming Linux" >&2
UNAME="Linux"
fi
LIBR_DIR=$1
DEST_DIR=$2
LIBGFORTRAN="${LIBR_DIR}/${LIBGFORTRAN_BASE}"
LIBQUADMATH="${LIBR_DIR}/${LIBQUADMATH_BASE}"
LIBGCC="${LIBR_DIR}/${LIBGCC_BASE}"
check_exists "${LIBGFORTRAN}"
check_exists "${LIBGCC}"
cp -v "${LIBGFORTRAN}" "${DEST_DIR}"
cp -v "${LIBGCC}" "${DEST_DIR}"
if [ -e "${LIBQUADMATH}" ]; then
cp -v "${LIBQUADMATH}" "${DEST_DIR}"
HAS_LIBQUADMATH=1
else
HAS_LIBQUADMATH=0
fi
LIBGFORTRAN="${DEST_DIR}/${LIBGFORTRAN_BASE}"
LIBQUADMATH="${DEST_DIR}/${LIBQUADMATH_BASE}"
LIBGCC="${DEST_DIR}/${LIBGCC_BASE}"
chmod 755 "${LIBGFORTRAN}"
chmod 755 "${LIBGCC}"
[ "$HAS_LIBQUADMATH" -eq 1 ] && chmod 755 "${LIBQUADMATH}"
if [ "$UNAME" = "Darwin" ]; then
install_name_tool -id "@rpath/${LIBGFORTRAN_BASE}" "${LIBGFORTRAN}"
install_name_tool -id "@rpath/${LIBGCC_BASE}" "${LIBGCC}"
codesign -f -s - "${LIBGFORTRAN}"
codesign -f -s - "${LIBGCC}"
if [ "$HAS_LIBQUADMATH" -eq 1 ]; then
install_name_tool -id "@rpath/${LIBQUADMATH_BASE}" "${LIBQUADMATH}"
codesign -f -s - "${LIBQUADMATH}"
fi
else
patchelf --set-rpath '$ORIGIN' "${LIBGFORTRAN}" || true
patchelf --set-rpath '$ORIGIN' "${LIBGCC}" || true
if [ "$HAS_LIBQUADMATH" -eq 1 ]; then
patchelf --set-rpath '$ORIGIN' "${LIBQUADMATH}" || true
fi
fi