blob: 54425529673d3406bb38983f3ed7fdd8d1c53a0b (
plain)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#!/bin/bash
. /etc/xdtrc
[ -z "$SDK_BASEURL" ] && SDK_BASEURL="http://iot.bzh/download/public/2017/XDS/sdk/"
[ -z "$XDT_SDK" ] && XDT_SDK=/xdt/sdk
# Support only poky_agl profile for now
PROFILE="poky-agl"
# Dynamically retreive SDKs (reduce timeout in case of iot website is not available)
SDKS=$(curl -s ${SDK_BASEURL} --connect-timeout 10 | grep -oP 'href="[^"]*.sh"' | cut -d '"' -f 2) || echo "WARNING: IoT.bzh download site not available."
usage() {
echo "Usage: $(basename $0) [-h|--help] [-clean] [-f|--file <agl-sdk-filename>] [-a|--arch <arch name>] [-l|--list]"
echo "For example, arch name is: aarch64, armv7vehf or corei7-64"
exit 1
}
getFile() {
arch=$1
for sdk in ${SDKS}; do
echo $sdk | grep "${PROFILE}.*${arch}.*.sh" > /dev/null 2>&1
if [ "$?" = "0" ]; then
echo $sdk
return 0
fi
done
echo "No SDK tarball found for arch $arch"
return 1
}
do_cleanup=false
FILE=""
ARCH=""
while [ $# -ne 0 ]; do
case $1 in
-h|--help|"")
usage
;;
-f|--file)
shift
FILE=$1
;;
-a|--arch)
shift
ARCH=$1
;;
-l|--list)
echo "Available SDKs tarballs:"
for sdk in $SDKS; do echo " $sdk"; done
exit 0
;;
-clean)
do_cleanup=true
;;
*)
echo "Invalid argument: $1"
usage
;;
esac
shift
done
if [ "$ARCH" = "x86-64" ]; then
echo "Warning x86-64 architure name is deprecated, please use corei7-64 instead !"
exit 1
fi
[ ! -d ${XDT_SDK} ] && mkdir -p ${XDT_SDK}
if [ "$FILE" = "" ]; then
FILE=$(getFile $ARCH)
if [ "$?" != "0" ]; then
echo "$FILE"
exit 1
fi
SDK_FILE=${XDT_SDK}/${FILE}
elif [ ! -f "$FILE" ]; then
echo "SDK file not found: $FILE"
exit 1
else
DIR=$(cd $(dirname $FILE); pwd)
FILE=$(basename $FILE)
SDK_FILE=${DIR}/${FILE}
fi
if [ "$ARCH" = "" ]; then
echo "Option -a|--arch must be set"
usage
fi
# Check that ARCH name matching SDK tarball filename
echo "$FILE" | grep "$ARCH" > /dev/null 2>&1
if [ "$?" = "1" ]; then
echo "ARCH and provided filename doesn't match !"
exit 1
fi
cd ${XDT_SDK} || exit 1
# Cleanup
trap "cleanExit" 0 1 2 15
cleanExit ()
{
if ($do_cleanup); then
[[ -f ${SDK_FILE} ]] && rm -f ${SDK_FILE}
fi
}
# Get SDK installer
if [ ! -f "${SDK_FILE}" ]; then
do_cleanup=true
wget "$SDK_BASEURL/$FILE" -O "${SDK_FILE}" || exit 1
fi
# Retreive default install dir to extract version
offset=$(grep -na -m1 "^MARKER:$" "${SDK_FILE}" | cut -d':' -f1)
eval $(head -n $offset "${SDK_FILE}" | grep ^DEFAULT_INSTALL_DIR= )
VERSION=$(basename $DEFAULT_INSTALL_DIR)
[ "$PROFILE" = "" ] && { echo "PROFILE is not set"; exit 1; }
[ "$VERSION" = "" ] && { echo "VERSION is not set"; exit 1; }
DESTDIR=${XDT_SDK}/${PROFILE}/${VERSION}/${ARCH}
# Cleanup previous install
rm -rf ${DESTDIR} && mkdir -p ${DESTDIR} || exit 1
# Install sdk
chmod +x ${SDK_FILE}
${SDK_FILE} -y -d ${DESTDIR}
|