]>
Commit | Line | Data |
---|---|---|
ce85f613 MT |
1 | #!/bin/bash |
2 | ############################################################################### | |
3 | # # | |
4 | # IPFire.org - A linux based firewall # | |
cfccf561 | 5 | # Copyright (C) 2008 Michael Tremer & Christian Schmidt # |
ce85f613 MT |
6 | # # |
7 | # This program is free software: you can redistribute it and/or modify # | |
8 | # it under the terms of the GNU General Public License as published by # | |
9 | # the Free Software Foundation, either version 3 of the License, or # | |
10 | # (at your option) any later version. # | |
11 | # # | |
12 | # This program is distributed in the hope that it will be useful, # | |
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of # | |
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # | |
15 | # GNU General Public License for more details. # | |
16 | # # | |
17 | # You should have received a copy of the GNU General Public License # | |
18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. # | |
19 | # # | |
20 | ############################################################################### | |
21 | ||
3349c6c9 MT |
22 | usage() { |
23 | cat doc/make.sh-usage | |
c90c0df9 | 24 | exit 1 |
3349c6c9 MT |
25 | } |
26 | ||
ce85f613 MT |
27 | case "$1" in |
28 | build) | |
4ce0b818 | 29 | # check for prerequisites |
38e7c3ac | 30 | check_build |
602bc6fa MT |
31 | # check for sanity of code |
32 | check_sanity | |
cfccf561 MT |
33 | # compile the distro right now |
34 | build | |
8db8436b MT |
35 | # beeps when finished |
36 | echo -ne '\a' | |
ce85f613 | 37 | ;; |
38e7c3ac | 38 | |
ce85f613 | 39 | shell) |
145db3c5 | 40 | shift |
ce85f613 MT |
41 | # enter a shell inside LFS chroot |
42 | # may be used to change kernel settings | |
43 | prepareenv | |
145db3c5 | 44 | entershell $@ |
ce85f613 | 45 | ;; |
cfccf561 MT |
46 | |
47 | batch) | |
48 | # build the distro in background | |
cfccf561 | 49 | case "$2" in |
e694da34 MT |
50 | cron) |
51 | cron_run | |
52 | ;; | |
cfccf561 | 53 | start) |
94c4cae8 | 54 | batch_start $3 |
cfccf561 MT |
55 | ;; |
56 | _run) | |
57 | batch_run | |
58 | ;; | |
59 | attach|watch) | |
60 | batch_attach | |
61 | ;; | |
3349c6c9 MT |
62 | *) |
63 | usage | |
64 | ;; | |
cfccf561 MT |
65 | esac |
66 | ;; | |
67 | ||
d4b2e100 MT |
68 | buildspy|bs) |
69 | # control buildspy | |
70 | case "$2" in | |
71 | start) | |
72 | build_spy start | |
73 | ;; | |
74 | stop) | |
75 | build_spy exit | |
76 | ;; | |
77 | *) | |
78 | usage | |
79 | ;; | |
80 | esac | |
81 | ;; | |
82 | ||
689314ee MT |
83 | ccache) |
84 | # ccache options | |
cfccf561 | 85 | case "$2" in |
689314ee | 86 | stats) |
cfccf561 MT |
87 | ccache_stats |
88 | ;; | |
689314ee MT |
89 | esac |
90 | ;; | |
91 | ||
145db3c5 MT |
92 | config) |
93 | # config options | |
94 | case "$2" in | |
95 | kernel) | |
96 | prepareenv | |
ffd2cf01 | 97 | entershell bash /usr/src/src/scripts/edit-kernel-config |
145db3c5 MT |
98 | ;; |
99 | *) | |
100 | usage | |
101 | ;; | |
102 | esac | |
103 | ;; | |
104 | ||
689314ee MT |
105 | distcc|distccd) |
106 | # distcc(d) commands | |
107 | case "$2" in | |
108 | start) | |
109 | distccd_start | |
110 | ;; | |
111 | stop) | |
112 | distccd_stop | |
113 | ;; | |
4ca87d59 MT |
114 | restart) |
115 | distccd_restart | |
116 | ;; | |
689314ee | 117 | stats|mon) |
cfccf561 MT |
118 | distcc_mon |
119 | ;; | |
120 | esac | |
121 | ;; | |
38e7c3ac | 122 | |
ce85f613 | 123 | clean) |
38e7c3ac | 124 | for i in $(mount | grep $BASEDIR | cut -d " " -f 1); do |
ce85f613 MT |
125 | umount $i |
126 | done | |
127 | ||
128 | stdumount | |
ce85f613 | 129 | |
d50ae2d1 MT |
130 | WHAT=${TARGET} |
131 | [ "$2" = "--all" ] && WHAT="${POSSIBLE_TARGETS}" | |
132 | ||
133 | for i in ${WHAT}; do | |
9e49fc4c MT |
134 | echo -ne "Cleaning ${BOLD}$i${NORMAL} buildtree" |
135 | rm -rf $BASEDIR/build_$i | |
136 | rm -rf $BASEDIR/log_$i | |
137 | rm -rf $BASEDIR/packages_$i | |
138 | beautify message DONE | |
139 | done | |
140 | echo -ne "Removing ${BOLD}general files${NORMAL}" | |
141 | rm -f $FAILED $RUNNING 2>/dev/null | |
ce85f613 MT |
142 | beautify message DONE |
143 | ;; | |
38e7c3ac | 144 | |
da1befdd | 145 | source|src) |
11f0ec61 | 146 | LOGFILE=$BASEDIR/log_${TARGET}/_build.00-preparation.log |
da1befdd MT |
147 | case "$2" in |
148 | get|pull|download) | |
149 | getsource | |
150 | ;; | |
151 | put|push|upload) | |
152 | putsource | |
153 | ;; | |
421f4db0 | 154 | list) |
51111711 | 155 | pkg_list_packages | tee -a $BASEDIR/doc/packages-list.txt |
421f4db0 | 156 | ;; |
da1befdd | 157 | esac |
ce85f613 | 158 | ;; |
38e7c3ac | 159 | |
ce85f613 | 160 | toolchain) |
da1befdd MT |
161 | case "$2" in |
162 | get|pull|download) | |
163 | gettoolchain | |
164 | ;; | |
165 | put|push|upload) | |
166 | puttoolchain | |
167 | ;; | |
763463bc | 168 | ""|-*) |
da1befdd MT |
169 | prepareenv |
170 | # Check if host can build the toolchain | |
171 | check_toolchain | |
b91fa051 | 172 | |
da1befdd | 173 | toolchain_build |
b91fa051 | 174 | |
da1befdd MT |
175 | stdumount |
176 | echo -ne "\ntarball creation " | |
177 | [ -d $BASEDIR/cache/toolchains ] || mkdir $BASEDIR/cache/toolchains | |
11f0ec61 | 178 | cd $BASEDIR && tar cj --exclude='log_${TARGET}/_build.*.log' \ |
da1befdd | 179 | --file=cache/toolchains/$TOOLCHAINNAME.tar.bz2 \ |
11f0ec61 | 180 | build_${TARGET} log_${TARGET} >> $LOGFILE |
da1befdd MT |
181 | beautify message DONE |
182 | echo `ls -sh cache/toolchains/$TOOLCHAINNAME.tar.bz2` | |
183 | ||
184 | stdumount | |
38e7c3ac | 185 | |
492712a2 | 186 | [ "$2" = "--put" ] && puttoolchain |
da1befdd MT |
187 | ;; |
188 | *) | |
189 | usage | |
190 | ;; | |
191 | esac | |
ce85f613 | 192 | ;; |
bd4be397 | 193 | |
af48bccf MT |
194 | toolchains) |
195 | for i in $(check_supported_targets); do | |
66a00f9a | 196 | TARGET=$i $0 clean |
763463bc | 197 | TARGET=$i $0 toolchain --put |
af48bccf MT |
198 | done |
199 | ;; | |
200 | ||
e70deaa8 MT |
201 | target) |
202 | case "$2" in | |
203 | put|push|upload) | |
204 | puttarget | |
205 | ;; | |
206 | *) | |
207 | usage | |
208 | ;; | |
209 | esac | |
210 | ;; | |
211 | ||
bd4be397 | 212 | check) |
c90c0df9 MT |
213 | case "$2" in |
214 | cpu) | |
215 | [ -z "$3" ] && usage | |
216 | if check_cpu $3; then | |
217 | echo -n "CPU has flag $3" | |
218 | beautify message DONE | |
219 | else | |
220 | dialogerror "CPU hasn't got flag $3" | |
221 | exit 1 | |
222 | fi | |
223 | ;; | |
c90c0df9 MT |
224 | sanity) |
225 | check_sanity $3 | |
226 | ;; | |
aac56982 MT |
227 | target*) |
228 | check_supported_targets | |
229 | ;; | |
c90c0df9 MT |
230 | *) |
231 | usage | |
232 | ;; | |
233 | esac | |
bd4be397 | 234 | ;; |
38e7c3ac | 235 | |
4b7f6462 | 236 | g[iu]t) |
4b7f6462 MT |
237 | COMMAND=$2 |
238 | shift 2 | |
239 | case "$COMMAND" in | |
0627b392 | 240 | update|pull) |
4b7f6462 | 241 | git_pull $* |
ce85f613 MT |
242 | ;; |
243 | commit|ci) | |
0627b392 | 244 | git_commit $* |
ce85f613 | 245 | ;; |
e4cff7fc | 246 | dist|export|archive) |
4b7f6462 | 247 | git_export $* |
e4cff7fc | 248 | ;; |
8e878964 | 249 | push) |
4b7f6462 | 250 | git_push $* |
8e878964 | 251 | ;; |
ce85f613 | 252 | diff|di) |
4b7f6462 | 253 | git_diff $* |
ce85f613 MT |
254 | ;; |
255 | log) | |
4b7f6462 | 256 | git_log $* |
ce85f613 | 257 | ;; |
48a17e7d MT |
258 | gc) |
259 | git_gc | |
260 | ;; | |
12b17e35 MT |
261 | shortlog|slog) |
262 | git_shortlog | |
263 | ;; | |
3763394e | 264 | put-key) |
3763394e MT |
265 | ssh_cert $* |
266 | ;; | |
4b7f6462 MT |
267 | *) # If no command matches run git directly |
268 | git $* | |
269 | ;; | |
ce85f613 MT |
270 | esac |
271 | ;; | |
38e7c3ac | 272 | |
aef37aba MT |
273 | package*|pkg) |
274 | case "$2" in | |
275 | list|show|ls) | |
276 | pkg_list_packages | |
277 | ;; | |
7f62382d MT |
278 | file*) |
279 | for i in $BASEDIR/lfs/*; do | |
280 | pkg_files $i | |
281 | done | |
282 | ;; | |
d6ec57e7 MT |
283 | info) |
284 | shift 2 | |
285 | format_desc() { | |
286 | MAX_LENGTH=38 | |
287 | INPUT=$@ | |
288 | ||
289 | LINE="" | |
290 | LENGTH=0 | |
291 | for word in $INPUT; do | |
292 | LENGTH=$(expr $LENGTH + ${#word}) | |
293 | if [ "$LENGTH" -ge "$MAX_LENGTH" ]; then | |
294 | printf "$LINE\n" | |
295 | LINE=" ${word} " | |
296 | LENGTH=${#word} | |
297 | else | |
298 | LINE="$LINE${word} " | |
299 | fi | |
300 | #echo "-- ($word) $LINE" | |
301 | done | |
302 | printf "$LINE\n" | |
303 | } | |
304 | for pkg in $@; do | |
305 | ( | |
306 | eval "$(pkg_info ${pkg})" | |
307 | echo "############################################################" | |
308 | echo -e "# ${CLR_BOLD_RED}PACKAGE INFO${NORMAL}" | |
309 | echo "############################################################" | |
310 | for val in NAME VERSION RELEASE break GROUP MAINTAINER break URL LICENSE; do | |
311 | if [ "${val}" == "break" ]; then | |
312 | echo " ---------------------------------------- " | |
313 | else | |
314 | printf "${CLR_BOLD_RED}%-12s${NORMAL}: ${!val}\n" ${val} | |
315 | fi | |
316 | done | |
317 | for val in SHORT DESC; do | |
318 | printf "${CLR_BOLD_RED}%-12s${NORMAL}: " ${val} | |
319 | format_desc ${!val} | |
320 | done | |
321 | ) | |
322 | done | |
323 | ;; | |
aef37aba MT |
324 | group*) |
325 | echo "====== All available groups of packages in ${NAME}-${VERSION} ======" | |
326 | echo | |
327 | for group in $(pkg_list_groups); do | |
328 | echo " * ${group}" | |
329 | done | |
330 | ;; | |
6c5f9f29 MT |
331 | raw) |
332 | pkg_info $3 | |
333 | ;; | |
020b04c0 MT |
334 | wikiinfo) |
335 | shift 2 | |
336 | pkg_info_wiki $@ | |
337 | ;; | |
12b17e35 MT |
338 | wikilist) |
339 | pkg_list_packages_wiki | |
340 | ;; | |
020b04c0 MT |
341 | *) |
342 | usage | |
343 | ;; | |
aef37aba MT |
344 | esac |
345 | ;; | |
346 | ||
021ed203 MT |
347 | push) |
348 | putsource | |
349 | git_push | |
350 | ;; | |
351 | ||
352 | pull) | |
11f0ec61 | 353 | LOGFILE=$BASEDIR/log_${TARGET}/_build.00-preparation.log |
021ed203 MT |
354 | git_pull |
355 | check_sanity | |
356 | getsource | |
357 | ;; | |
358 | ||
b07899d1 MT |
359 | rootfiles|rf) |
360 | case "$2" in | |
361 | check|ch) | |
362 | rootfiles_check $3 | |
363 | ;; | |
364 | commit|ci|update|up) | |
365 | rootfiles_commit | |
366 | ;; | |
367 | copy|cp) | |
368 | shift 2 | |
369 | rootfiles_copy $@ | |
370 | ;; | |
371 | fix) | |
372 | rootfiles_check --fix | |
373 | ;; | |
374 | *) | |
375 | usage | |
376 | ;; | |
377 | esac | |
378 | ;; | |
379 | ||
95642cd9 MT |
380 | vm|qemu) |
381 | case "$2" in | |
382 | boot|start|run) | |
383 | shift 2 | |
384 | qemu_start $* | |
385 | ;; | |
386 | ||
387 | clean) | |
388 | rm -rf $BASEDIR/vm | |
389 | ;; | |
390 | esac | |
391 | ;; | |
392 | ||
ce85f613 | 393 | *) |
3349c6c9 | 394 | usage |
ce85f613 | 395 | ;; |
38e7c3ac | 396 | |
ce85f613 | 397 | esac |