2
2
3
3
TARGETS=${@ }
4
4
5
-
6
5
if [ -z " $TARGETS " ]; then
7
6
echo " Please specify target"
8
7
exit 1
9
8
fi
10
- if [ " $TARGETS " == " all" ]; then
11
- TARGETS=$( ls -1 configs/ | sed ' s/.config//' )
12
- TARGETS=${TARGETS} " tools"
13
- fi
14
9
15
- COMMIT=" 4d5660e34e7c5f522e8b07ded82d7a6a15b787ef"
16
10
GITDIR=${PWD}
11
+ TARBALL_DIR=${GITDIR}
17
12
JOBS=$( python -c ' import multiprocessing as mp; print(mp.cpu_count())' )
18
13
19
14
unameOut=" $( uname -s) "
28
23
29
24
SDK_NG_HOME=${PWD}
30
25
26
+ CROSSTOOL_COMMIT=" 4d5660e34e7c5f522e8b07ded82d7a6a15b787ef"
27
+ build_crosstool ()
28
+ {
29
+ # only build if we don't already have a built binary
30
+
31
+ if [ ! -x " ${SDK_NG_HOME} /bin/ct-ng" ]; then
32
+ # Checkout crosstool-ng if we haven't already
33
+ if [ ! -d " ${SDK_NG_HOME} /crosstool-ng" ]; then
34
+ pushd ${SDK_NG_HOME}
35
+ git clone https://github.com/zephyrproject-rtos/crosstool-ng.git
36
+ pushd crosstool-ng
37
+ git checkout ${CROSSTOOL_COMMIT}
38
+ popd
39
+ popd
40
+ fi
41
+
42
+ pushd ${SDK_NG_HOME} /crosstool-ng
43
+ ./bootstrap
44
+ CFLAGS=" -DKBUILD_NO_NLS" ./configure --prefix=${SDK_NG_HOME}
45
+ make && make install
46
+ popd
47
+
48
+ tar -jcvf ${TARBALL_DIR} /${t} .${os} .${machine} .tar.bz2 -C ${SDK_NG_HOME} bin libexec share
49
+ fi
50
+ }
51
+
31
52
if [ " $os " == " macos" ]; then
32
53
if [ -x " /opt/homebrew/bin/brew" ]; then
33
54
export HOMEBREW_ROOT=" /opt/homebrew"
@@ -54,35 +75,26 @@ if [ "$os" == "macos" ]; then
54
75
fi
55
76
fi
56
77
57
- cp -a ${GITDIR} /patches-arc64 ${SDK_NG_HOME} 2> /dev/null
58
- cd ${SDK_NG_HOME}
78
+ CT_NG=${SDK_NG_HOME} /bin/ct-ng
59
79
60
80
for t in ${TARGETS} ; do
61
81
if [ " ${t} " = " tools" ]; then
62
- ./meta-zephyr-sdk/scripts/meta-zephyr-sdk-clone.sh;
63
- ./meta-zephyr-sdk/scripts/meta-zephyr-sdk-build.sh tools;
64
- mv ./meta-zephyr-sdk/scripts/toolchains/zephyr-sdk-${machine} -hosttools-standalone-0.9.sh .
82
+ ${GITDIR} /meta-zephyr-sdk/scripts/meta-zephyr-sdk-clone.sh
83
+ ${GITDIR} /meta-zephyr-sdk/scripts/meta-zephyr-sdk-build.sh tools
84
+ mv ${GITDIR} /meta-zephyr-sdk/scripts/toolchains/zephyr-sdk-${machine} -hosttools-standalone-0.9.sh ${TARBALL_DIR}
85
+ exit $?
65
86
elif [ " ${t} " = " cmake" ]; then
66
- tar -jcvf ${t} .${os} .${machine} .tar.bz2 -C ${GITDIR} cmake
87
+ tar -jcvf ${TARBALL_DIR} /${t} .${os} .${machine} .tar.bz2 -C ${GITDIR} cmake
88
+ exit $?
89
+ elif [ " ${t} " = " crosstool" ]; then
90
+ build_crosstool
91
+ exit $?
67
92
fi
68
93
done
69
94
70
- if [ ! -d " crosstool-ng" ]; then
71
- git clone https://github.com/zephyrproject-rtos/crosstool-ng.git
72
- pushd crosstool-ng
73
- git checkout ${COMMIT}
74
- popd
75
- fi
76
-
77
- if [ ! -e " ${SDK_NG_HOME} /bin/ct-ng" ]; then
78
- pushd crosstool-ng
79
- ./bootstrap
80
- CFLAGS=" -DKBUILD_NO_NLS" ./configure --prefix=${SDK_NG_HOME}
81
- make && make install
82
- popd
83
- fi
95
+ # prep
96
+ cp -a ${GITDIR} /patches-arc64 ${SDK_NG_HOME} 2> /dev/null
84
97
85
- CT_NG=${SDK_NG_HOME} /bin/ct-ng
86
98
OUTPUT_DIR=${SDK_NG_HOME} /build/output
87
99
88
100
mkdir -p ${OUTPUT_DIR} /sources
@@ -99,6 +111,9 @@ for t in ${TARGETS}; do
99
111
echo " Target configuration does not exist"
100
112
exit 1
101
113
fi
114
+
115
+ build_crosstool
116
+
102
117
echo " Building ${t} "
103
118
TARGET_BUILD_DIR=${SDK_NG_HOME} /build/build_${t}
104
119
mkdir -p ${TARGET_BUILD_DIR}
0 commit comments