forked from koreader/koxtoolchain
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgen-tc.sh
More file actions
executable file
·153 lines (140 loc) · 3.63 KB
/
Copy pathgen-tc.sh
File metadata and controls
executable file
·153 lines (140 loc) · 3.63 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
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#!/bin/bash -e
#
# Adapted from NiLuJe's build script:
# http://www.mobileread.com/forums/showthread.php?t=88004
# (live copy: https://svn.ak-team.com/svn/Configs/trunk/Kindle/Misc/x-compile.sh)
#
# =================== original header ====================
#
# Kindle cross toolchain & lib/bin/util build script
#
# $Id$
#
# kate: syntax bash;
#
## Using CrossTool-NG (http://crosstool-ng.org/)
CUR_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
Build_CT-NG() {
echo "[*] Building CrossTool-NG . . ."
tc_target="$1"
PARALLEL_JOBS=$(($(getconf _NPROCESSORS_ONLN 2> /dev/null || sysctl -n hw.ncpu 2> /dev/null || echo 0) + 1))
echo "[-] ct-ng git repo: ${ct_ng_git_repo}"
echo "[-] ct-ng commit hash: ${ct_ng_commit}"
echo "[-] compiling with ${PARALLEL_JOBS} parallel jobs"
echo "[-] toolchain target: ${tc_target}"
git submodule update --init --recursive
pushd CT-NG
git clean -fxdq
./bootstrap
[ ! -d "CT_NG_BUILD" ] && mkdir -p "CT_NG_BUILD"
./configure --prefix="$(pwd)/CT_NG_BUILD"
make -j${PARALLEL_JOBS}
make install
#export PATH="$(pwd)/CT_NG_BUILD/bin:${PATH}"
CT_NG_PATH="$(pwd)/CT_NG_BUILD/bin/ct-ng"
popd
# extract platform name from target tuple
tmp_str="${tc_target#*-}"
TC_BUILD_DIR="build/${tmp_str%%-*}"
[ ! -d "${TC_BUILD_DIR}" ] && mkdir -p "${TC_BUILD_DIR}"
pushd "${TC_BUILD_DIR}"
$CT_NG_PATH distclean
unset CFLAGS CXXFLAGS LDFLAGS
$CT_NG_PATH "${tc_target}"
$CT_NG_PATH oldconfig
$CT_NG_PATH upgradeconfig
$CT_NG_PATH updatetools
nice $CT_NG_PATH build.$PARALLEL_JOBS
echo ""
echo "[INFO ] ================================================================="
echo "[INFO ] Build done. Please add $HOME/x-tools/${tc_target}/bin to your PATH."
echo "[INFO ] ================================================================="
popd
echo "[INFO ] ================================================================="
echo "[INFO ] The x-compile.sh script can do that (and more) for you:"
echo "[INFO ] * If you need a persistent custom sysroot (e.g., if you intend to build a full dependency chain)"
echo "[INFO ] > source ${PWD}/refs/x-compile.sh ${TC_BUILD_DIR} env"
echo "[INFO ] * If you just need a compiler:"
echo "[INFO ] > source ${PWD}/refs/x-compile.sh ${TC_BUILD_DIR} env bare"
}
HELP_MSG="
usage: $0 PLATFORM
Supported platforms:
kindle
kindle5
kindlepw2
kindlehf
kobo
kobov4
kobov5
nickel
remarkable
remarkable-aarch64
cervantes
pocketbook
pocketbookhf
bookeen
"
if [ $# -lt 1 ]; then
echo "Missing argument"
echo "${HELP_MSG}"
exit 1
fi
case $1 in
-h)
echo "${HELP_MSG}"
exit 0
;;
kobov5)
Build_CT-NG "arm-${1}-linux-gnueabihf"
;;
kobov4)
Build_CT-NG "arm-${1}-linux-gnueabihf"
;;
kobo)
Build_CT-NG "arm-${1}-linux-gnueabihf"
;;
nickel)
Build_CT-NG "arm-${1}-linux-gnueabihf"
;;
kindlehf)
Build_CT-NG "arm-${1}-linux-gnueabihf"
;;
kindlepw2)
Build_CT-NG "arm-${1}-linux-gnueabi"
;;
kindle5)
Build_CT-NG "arm-${1}-linux-gnueabi"
;;
kindle)
# NOTE: Prevent libstdc++ from pulling in utimensat@GLIBC_2.6
export glibcxx_cv_utimensat=no
Build_CT-NG "arm-${1}-linux-gnueabi"
unset glibcxx_cv_utimensat
;;
remarkable)
Build_CT-NG "arm-${1}-linux-gnueabihf"
;;
remarkable-aarch64)
Build_CT-NG "aarch64-remarkable-linux-gnu"
;;
cervantes)
Build_CT-NG "arm-${1}-linux-gnueabi"
;;
pocketbook)
# NOTE: Prevent libstdc++ from pulling in utimensat@GLIBC_2.6
export glibcxx_cv_utimensat=no
Build_CT-NG "arm-${1}-linux-gnueabi"
;;
pocketbookhf)
Build_CT-NG "arm-${1}-linux-gnueabihf"
;;
bookeen)
Build_CT-NG "arm-${1}-linux-gnueabi"
;;
*)
echo "[!] $1 not supported!"
echo "${HELP_MSG}"
exit 1
;;
esac