blob: a732e6adc384089172b66478ad4eb7609ce2a660 [file] [log] [blame]
Peter Tysera5a27b92009-12-06 23:58:28 -06001#!/bin/bash
wdenk7ebf7442002-11-02 23:17:16 +00002
Wolfgang Denk7b74fec2010-10-17 12:26:48 +02003# Tool mainly for U-Boot Quality Assurance: build one or more board
4# configurations with minimal verbosity, showing only warnings and
5# errors.
6#
7# There are several ways to select which boards to build.
8#
9# Traditionally, architecture names (like "powerpc"), CPU family names
10# (like "mpc83xx") or board names can be specified on the command
11# line; without any arguments, MAKEALL defaults to building all Power
12# Architecture systems (i. e. same as for "MAKEALL powerpc").
13#
Peter Tyser2f887602010-10-29 17:59:06 -050014# With the introduction of the board.cfg file, it has become possible
Wolfgang Denk7b74fec2010-10-17 12:26:48 +020015# to provide additional selections. We use standard command line
16# options for this:
17#
18# -a or --arch : Select architecture
19# -c or --cpu : Select CPU family
20# -s or --soc : Select SoC type
21# -v or --vendor: Select board vendor
22#
23# Selections by these options are logically ANDed; if the same option
24# is used repeatedly, such selections are ORed. So "-v FOO -v BAR"
25# will select all configurations where the vendor is either FOO or
26# BAR. Any additional arguments specified on the command line are
27# always build additionally.
28#
29# Examples:
30#
31# - build all Power Architecture boards:
32#
33# MAKEALL -a powerpc
34# or
35# MAKEALL --arch powerpc
36# or
37# MAKEALL powerpc
38#
39# - build all PowerPC boards manufactured by vendor "esd":
40#
41# MAKEALL -a powerpc -v esd
42#
43# - build all PowerPC boards manufactured either by "keymile" or
44# "siemens":
45#
46# MAKEALL -a powerpc -v keymile -v siemens
47#
48# - build all Freescale boards with MPC83xx CPUs, plus all 4xx boards:
49#
50# MAKEALL -c mpc83xx -v freescale 4xx
51#
52#########################################################################
53
54SHORT_OPTS="a:c:v:s:"
55LONG_OPTS="arch:,cpu:,vendor:,soc:"
56
57# Option processing based on util-linux-2.13/getopt-parse.bash
58
Wolfgang Denk1136f692010-10-27 22:48:30 +020059# Note that we use `"$@"' to let each command-line parameter expand to a
Wolfgang Denk7b74fec2010-10-17 12:26:48 +020060# separate word. The quotes around `$@' are essential!
61# We need TEMP as the `eval set --' would nuke the return value of
62# getopt.
63TEMP=`getopt -o ${SHORT_OPTS} --long ${LONG_OPTS} \
64 -n 'MAKEALL' -- "$@"`
65
66if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
67
68# Note the quotes around `$TEMP': they are essential!
69eval set -- "$TEMP"
70
71SELECTED=''
72
73while true ; do
74 case "$1" in
75 -a|--arch)
76 # echo "Option ARCH: argument \`$2'"
77 if [ "$opt_a" ] ; then
78 opt_a="${opt_a%)} || \$2 == \"$2\")"
79 else
80 opt_a="(\$2 == \"$2\")"
81 fi
82 SELECTED='y'
83 shift 2 ;;
84 -c|--cpu)
85 # echo "Option CPU: argument \`$2'"
86 if [ "$opt_c" ] ; then
87 opt_c="${opt_c%)} || \$3 == \"$2\")"
88 else
89 opt_c="(\$3 == \"$2\")"
90 fi
91 SELECTED='y'
92 shift 2 ;;
93 -s|--soc)
94 # echo "Option SoC: argument \`$2'"
95 if [ "$opt_s" ] ; then
96 opt_s="${opt_s%)} || \$6 == \"$2\")"
97 else
98 opt_s="(\$6 == \"$2\")"
99 fi
100 SELECTED='y'
101 shift 2 ;;
102 -v|--vendor)
103 # echo "Option VENDOR: argument \`$2'"
104 if [ "$opt_v" ] ; then
105 opt_v="${opt_v%)} || \$5 == \"$2\")"
106 else
107 opt_v="(\$5 == \"$2\")"
108 fi
109 SELECTED='y'
110 shift 2 ;;
111 --)
112 shift ; break ;;
113 *)
114 echo "Internal error!" >&2 ; exit 1 ;;
115 esac
116done
117# echo "Remaining arguments:"
118# for arg do echo '--> '"\`$arg'" ; done
119
120FILTER="\$1 !~ /^#/"
121[ "$opt_a" ] && FILTER="${FILTER} && $opt_a"
122[ "$opt_c" ] && FILTER="${FILTER} && $opt_c"
123[ "$opt_s" ] && FILTER="${FILTER} && $opt_s"
124[ "$opt_v" ] && FILTER="${FILTER} && $opt_v"
125
126if [ "$SELECTED" ] ; then
127 SELECTED=$(awk '('"$FILTER"') { print $1 }' boards.cfg)
Peter Tyser2f887602010-10-29 17:59:06 -0500128
129 # Make sure some boards from boards.cfg are actually found
130 if [ -z "$SELECTED" ] ; then
131 echo "Error: No boards selected, invalid arguments"
132 exit 1
133 fi
Wolfgang Denk7b74fec2010-10-17 12:26:48 +0200134fi
135
136#########################################################################
137
Peter Tyser23240d22009-09-21 12:04:32 -0500138# Print statistics when we exit
139trap exit 1 2 3 15
140trap print_stats 0
141
Wolfgang Denkde5d6602008-12-09 00:39:08 +0100142# Determine number of CPU cores if no default was set
143: ${BUILD_NCPUS:="`getconf _NPROCESSORS_ONLN`"}
144
145if [ "$BUILD_NCPUS" -gt 1 ]
146then
Peter Tyser8a07f9a2009-09-21 12:04:33 -0500147 JOBS="-j $((BUILD_NCPUS + 1))"
Wolfgang Denkde5d6602008-12-09 00:39:08 +0100148else
149 JOBS=""
150fi
151
wdenkc0aa5c52003-12-06 19:49:23 +0000152
wdenk7ebf7442002-11-02 23:17:16 +0000153if [ "${CROSS_COMPILE}" ] ; then
154 MAKE="make CROSS_COMPILE=${CROSS_COMPILE}"
155else
156 MAKE=make
157fi
158
Marian Balakowiczd62379d2006-09-01 19:49:50 +0200159if [ "${MAKEALL_LOGDIR}" ] ; then
160 LOG_DIR=${MAKEALL_LOGDIR}
161else
162 LOG_DIR="LOG"
163fi
Stefan Roese42fbddd2006-09-07 11:51:23 +0200164
Marian Balakowiczd62379d2006-09-01 19:49:50 +0200165if [ ! "${BUILD_DIR}" ] ; then
166 BUILD_DIR="."
167fi
168
Marian Balakowicz7f783cb2006-09-07 12:05:53 +0200169[ -d ${LOG_DIR} ] || mkdir ${LOG_DIR} || exit 1
wdenk7ebf7442002-11-02 23:17:16 +0000170
171LIST=""
172
Peter Tyser23240d22009-09-21 12:04:32 -0500173# Keep track of the number of builds and errors
174ERR_CNT=0
175ERR_LIST=""
176TOTAL_CNT=0
Peter Tysera5a27b92009-12-06 23:58:28 -0600177RC=0
Peter Tyser23240d22009-09-21 12:04:32 -0500178
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400179# Helper funcs for parsing boards.cfg
180boards_by_field()
181{
182 awk \
183 -v field="$1" \
184 -v select="$2" \
185 '($1 !~ /^#/ && $field == select) { print $1 }' \
186 boards.cfg
187}
188boards_by_arch() { boards_by_field 2 "$@" ; }
189boards_by_cpu() { boards_by_field 3 "$@" ; }
Andreas Bießmannbb96a8e2010-11-30 09:45:04 +0000190boards_by_soc() { boards_by_field 6 "$@" ; }
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400191
wdenk7ebf7442002-11-02 23:17:16 +0000192#########################################################################
wdenk359733b2003-03-31 17:27:09 +0000193## MPC5xx Systems
194#########################################################################
195
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400196LIST_5xx="$(boards_by_cpu mpc5xx)"
wdenk359733b2003-03-31 17:27:09 +0000197
198#########################################################################
wdenk21136db2003-07-16 21:53:01 +0000199## MPC5xxx Systems
200#########################################################################
201
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200202LIST_5xxx="$(boards_by_cpu mpc5xxx)"
wdenk21136db2003-07-16 21:53:01 +0000203
204#########################################################################
Rafal Jaworowskid3a02c32007-07-27 14:43:59 +0200205## MPC512x Systems
206#########################################################################
207
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200208LIST_512x="$(boards_by_cpu mpc512x)"
Rafal Jaworowskid3a02c32007-07-27 14:43:59 +0200209
210#########################################################################
wdenk7ebf7442002-11-02 23:17:16 +0000211## MPC8xx Systems
212#########################################################################
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400213
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200214LIST_8xx="$(boards_by_cpu mpc8xx)"
wdenk7ebf7442002-11-02 23:17:16 +0000215
216#########################################################################
217## PPC4xx Systems
218#########################################################################
219
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200220LIST_4xx="$(boards_by_cpu ppc4xx)"
wdenk7ebf7442002-11-02 23:17:16 +0000221
222#########################################################################
wdenk337f5652004-10-28 00:09:35 +0000223## MPC8220 Systems
224#########################################################################
225
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400226LIST_8220="$(boards_by_cpu mpc8220)"
wdenk337f5652004-10-28 00:09:35 +0000227
228#########################################################################
wdenk7ebf7442002-11-02 23:17:16 +0000229## MPC824x Systems
230#########################################################################
231
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200232LIST_824x="$(boards_by_cpu mpc824x)"
wdenkdbae5042003-06-21 00:17:24 +0000233
wdenk7ebf7442002-11-02 23:17:16 +0000234#########################################################################
wdenk541a76d2003-05-03 15:50:43 +0000235## MPC8260 Systems (includes 8250, 8255 etc.)
wdenk7ebf7442002-11-02 23:17:16 +0000236#########################################################################
237
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200238LIST_8260="$(boards_by_cpu mpc8260)"
wdenk7ebf7442002-11-02 23:17:16 +0000239
240#########################################################################
Eran Liberty9095d4a2005-07-28 10:08:46 -0500241## MPC83xx Systems (includes 8349, etc.)
242#########################################################################
243
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200244LIST_83xx="$(boards_by_cpu mpc83xx)"
Eran Liberty9095d4a2005-07-28 10:08:46 -0500245
246#########################################################################
wdenk9c53f402003-10-15 23:53:47 +0000247## MPC85xx Systems (includes 8540, 8560 etc.)
248#########################################################################
249
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200250LIST_85xx="$(boards_by_cpu mpc85xx)"
wdenk9c53f402003-10-15 23:53:47 +0000251
252#########################################################################
Jon Loeliger5fe34492007-05-23 14:09:46 -0500253## MPC86xx Systems
254#########################################################################
255
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200256LIST_86xx="$(boards_by_cpu mpc86xx)"
Jon Loeliger5fe34492007-05-23 14:09:46 -0500257
258#########################################################################
wdenk7ebf7442002-11-02 23:17:16 +0000259## 74xx/7xx Systems
260#########################################################################
261
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200262LIST_74xx_7xx="$(boards_by_cpu 74xx_7xx)"
wdenk7ebf7442002-11-02 23:17:16 +0000263
Wolfgang Denk66549bd2008-04-20 15:35:52 -0700264#########################################################################
265## PowerPC groups
266#########################################################################
267
268LIST_TSEC=" \
269 ${LIST_83xx} \
270 ${LIST_85xx} \
271 ${LIST_86xx} \
272"
273
Stefan Roese88fbf932010-04-15 16:07:28 +0200274LIST_powerpc=" \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500275 ${LIST_5xx} \
Jean-Christophe PLAGNIOL-VILLARD0912d312007-11-25 22:39:25 +0100276 ${LIST_512x} \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500277 ${LIST_5xxx} \
278 ${LIST_8xx} \
279 ${LIST_8220} \
280 ${LIST_824x} \
281 ${LIST_8260} \
282 ${LIST_83xx} \
283 ${LIST_85xx} \
284 ${LIST_86xx} \
285 ${LIST_4xx} \
Wolfgang Denk291ba1b2010-10-06 09:05:45 +0200286 ${LIST_74xx_7xx}\
Kim Phillips8c0c8932007-08-10 15:34:48 -0500287"
wdenk7ebf7442002-11-02 23:17:16 +0000288
Stefan Roese88fbf932010-04-15 16:07:28 +0200289# Alias "ppc" -> "powerpc" to not break compatibility with older scripts
290# still using "ppc" instead of "powerpc"
291LIST_ppc=" \
292 ${LIST_powerpc} \
293"
294
wdenk7ebf7442002-11-02 23:17:16 +0000295#########################################################################
296## StrongARM Systems
297#########################################################################
298
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400299LIST_SA="$(boards_by_cpu sa1100)"
wdenk7ebf7442002-11-02 23:17:16 +0000300
301#########################################################################
302## ARM7 Systems
303#########################################################################
304
Kim Phillips8c0c8932007-08-10 15:34:48 -0500305LIST_ARM7=" \
306 ap7 \
307 ap720t \
308 armadillo \
309 B2 \
310 ep7312 \
311 evb4510 \
312 impa7 \
313 integratorap \
314 lpc2292sodimm \
315 modnet50 \
316 SMN42 \
Wolfgang Denkadf20a12005-09-25 01:48:28 +0200317"
wdenk7ebf7442002-11-02 23:17:16 +0000318
319#########################################################################
320## ARM9 Systems
321#########################################################################
322
Kim Phillips8c0c8932007-08-10 15:34:48 -0500323LIST_ARM9=" \
Po-Yu Chuang5614a4d2009-11-11 17:27:30 +0800324 a320evb \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500325 ap920t \
326 ap922_XA10 \
327 ap926ejs \
328 ap946es \
329 ap966 \
Prafulla Wadaskarf22f8d62010-11-29 17:01:27 +0530330 aspenite \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500331 cp920t \
332 cp922_XA10 \
333 cp926ejs \
334 cp946es \
335 cp966 \
Sekhar Nori5ffad632009-11-12 11:09:25 -0500336 da830evm \
Sudhakar Rajashekhara68921812010-06-10 15:18:15 +0530337 da850evm \
Matthias Kaehlcke279437d2010-02-01 21:29:48 +0100338 edb9301 \
339 edb9302 \
340 edb9302a \
341 edb9307 \
342 edb9307a \
343 edb9312 \
344 edb9315 \
345 edb9315a \
Albert Aribaudacc41ff2010-06-17 19:38:21 +0530346 edminiv2 \
Siddarth Gore11b10b02010-03-18 20:25:40 +0530347 guruplug \
Ilya Yanok016b7022009-08-11 02:32:09 +0400348 imx27lite \
Matthias Weisserdcf0dca2010-08-09 13:31:51 +0200349 jadecpu \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500350 lpd7a400 \
Heiko Schocherc8f51122010-03-05 07:36:33 +0100351 magnesium \
Prafulla Wadaskar60a04f92009-07-16 20:58:01 +0530352 mv88f6281gtw_ge \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500353 mx1ads \
354 mx1fs2 \
355 netstar \
Jean-Christophe PLAGNIOL-VILLARD871e4812009-07-05 01:06:06 +0200356 nhk8815 \
357 nhk8815_onenand \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500358 omap1510inn \
359 omap1610h2 \
360 omap1610inn \
David Brownell161f4112008-01-18 12:45:45 -0800361 omap5912osk \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500362 omap730p2 \
Simon Kagstrom258c3302009-09-22 04:01:01 +0530363 openrd_base \
Prafulla Wadaskar4aab4ae2009-07-16 21:02:24 +0530364 rd6281a \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500365 sbc2410x \
366 scb9328 \
Prafulla Wadaskar62634642009-07-16 20:58:00 +0530367 sheevaplug \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500368 smdk2400 \
369 smdk2410 \
Vipin KUMARb0ea0892010-01-15 19:15:50 +0530370 spear300 \
Vipin KUMAR6e2998f2010-01-15 19:15:52 +0530371 spear310 \
Vipin KUMARcc0da712010-01-15 19:15:53 +0530372 spear320 \
Vipin KUMAR7cc4c462010-01-15 19:15:48 +0530373 spear600 \
Heiko Schocher60301192010-02-22 16:43:02 +0530374 suen3 \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500375 trab \
376 VCMA9 \
377 versatile \
378 versatileab \
379 versatilepb \
380 voiceblue \
381 davinci_dvevm \
382 davinci_schmoogie \
Hugo Villeneuve4f3f6712008-05-21 13:58:41 -0400383 davinci_sffsdr \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500384 davinci_sonata \
David Brownell7a846182009-05-15 23:48:37 +0200385 davinci_dm355evm \
Sandeep Paulraj2e584ec2009-10-10 13:37:10 -0400386 davinci_dm355leopard \
Sandeep Paulraj7c82bdc2010-02-17 21:09:21 -0500387 davinci_dm365evm \
Sandeep Paulraj1830bba2009-10-10 12:00:47 -0400388 davinci_dm6467evm \
wdenk7eaacc52003-08-29 22:00:43 +0000389"
wdenk7ebf7442002-11-02 23:17:16 +0000390
391#########################################################################
Wolfgang Denkadf20a12005-09-25 01:48:28 +0200392## ARM10 Systems
393#########################################################################
Kim Phillips8c0c8932007-08-10 15:34:48 -0500394LIST_ARM10=" \
395 integratorcp \
396 cp1026 \
Wolfgang Denkadf20a12005-09-25 01:48:28 +0200397"
398
399#########################################################################
wdenkf8062712005-01-09 23:16:25 +0000400## ARM11 Systems
401#########################################################################
Guennadi Liakhovetskib093d8d2009-03-25 11:36:50 +0100402LIST_ARM11=" \
403 cp1136 \
404 omap2420h4 \
405 apollon \
406 imx31_litekit \
407 imx31_phycore \
408 imx31_phycore_eet \
409 mx31ads \
Magnus Lilja6eeb6f72009-07-01 01:07:55 +0200410 mx31pdk \
Magnus Lilja24f8b412009-07-04 10:31:24 +0200411 mx31pdk_nand \
Guennadi Liakhovetskib093d8d2009-03-25 11:36:50 +0100412 qong \
413 smdk6400 \
Cyril Chemparathy3d138062010-06-07 14:13:36 -0400414 tnetv107x_evm \
Wolfgang Denkadf20a12005-09-25 01:48:28 +0200415"
wdenkf8062712005-01-09 23:16:25 +0000416
417#########################################################################
Steve Sakoman6329a8f2010-06-17 21:50:01 -0700418## ARMV7 Systems
Dirk Behme2781f802009-01-27 18:19:12 +0100419#########################################################################
Steve Sakoman6329a8f2010-06-17 21:50:01 -0700420LIST_ARMV7=" \
Vaibhav Hiremathdb5c5582010-06-07 15:20:43 -0400421 am3517_evm \
Matt Waddel35c638b2010-10-07 15:48:45 -0600422 ca9x4_ct_vxp \
Frederik Kriewitz99396502009-08-23 12:56:42 +0200423 devkit8000 \
Enric Balletbo i Serra2ce268c2010-10-14 16:54:59 -0400424 igep0020 \
Enric Balletbo i Serra3c1e54a2010-10-14 16:57:39 -0400425 igep0030 \
Stefano Babic421834e2010-02-05 15:13:58 +0100426 mx51evk \
Dirk Behme2781f802009-01-27 18:19:12 +0100427 omap3_beagle \
Dirk Behme220faba2009-01-28 21:39:57 +0100428 omap3_overo \
Dirk Behmebb732be2009-01-28 21:39:58 +0100429 omap3_evm \
Dirk Behme7b84a7b2009-01-28 21:39:58 +0100430 omap3_pandora \
Tom Rixc5a51352009-10-17 12:41:06 -0500431 omap3_sdp3430 \
Dirk Behmebab104e2009-01-28 21:40:16 +0100432 omap3_zoom1 \
Tom Rix0419d912009-05-15 23:48:36 +0200433 omap3_zoom2 \
Steve Sakoman6b810ff2010-06-11 20:35:26 -0700434 omap4_panda \
Steve Sakoman1b3dd5d2010-06-08 13:07:46 -0700435 omap4_sdp4430 \
Minkyu Kang1ecdd832010-05-31 22:02:42 +0900436 s5p_goni \
Minkyu Kang29325572009-10-01 17:20:40 +0900437 smdkc100 \
Dirk Behme2781f802009-01-27 18:19:12 +0100438"
439
440#########################################################################
Jean-Christophe PLAGNIOL-VILLARD9a88fd12008-05-24 12:47:46 +0200441## AT91 Systems
442#########################################################################
443
Andreas Bießmannbb96a8e2010-11-30 09:45:04 +0000444LIST_at91="$(boards_by_soc at91)\
445 $(boards_by_soc at91rm9200)\
Sedji Gaouaou538566d2009-07-09 10:16:29 +0200446 at91sam9260ek \
447 at91sam9261ek \
448 at91sam9263ek \
Tom Rix3db7af72009-09-27 07:47:24 -0500449 at91sam9g10ek \
Sedji Gaouaou538566d2009-07-09 10:16:29 +0200450 at91sam9g20ek \
Sedji Gaouaou97a031b2009-06-25 17:04:15 +0200451 at91sam9m10g45ek \
Sedji Gaouaou538566d2009-07-09 10:16:29 +0200452 at91sam9rlek \
Tom Rix3db7af72009-09-27 07:47:24 -0500453 CPUAT91 \
Tom Rix799a05b2009-09-27 11:10:09 -0500454 CPU9260 \
455 CPU9G20 \
Asen Dimovddd0bda2010-04-20 22:49:04 +0300456 pm9g45 \
Albin Tonnerre20615462009-08-20 16:04:49 +0200457 SBC35_A9G20 \
458 TNY_A9260 \
459 TNY_A9G20 \
Jean-Christophe PLAGNIOL-VILLARD9a88fd12008-05-24 12:47:46 +0200460"
461
462#########################################################################
wdenk7ebf7442002-11-02 23:17:16 +0000463## Xscale Systems
464#########################################################################
465
Marek Vasut4ccaaef2010-10-04 00:21:51 +0200466LIST_pxa="$(boards_by_cpu pxa)"
wdenk7ebf7442002-11-02 23:17:16 +0000467
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400468LIST_ixp="$(boards_by_cpu ixp)
Kim Phillips8c0c8932007-08-10 15:34:48 -0500469 pdnb3 \
470 scpu \
471"
wdenk7ebf7442002-11-02 23:17:16 +0000472
Wolfgang Denk66549bd2008-04-20 15:35:52 -0700473#########################################################################
474## ARM groups
475#########################################################################
wdenkbd1575f2003-10-14 19:43:55 +0000476
Dirk Behme2781f802009-01-27 18:19:12 +0100477LIST_arm=" \
478 ${LIST_SA} \
479 ${LIST_ARM7} \
480 ${LIST_ARM9} \
481 ${LIST_ARM10} \
482 ${LIST_ARM11} \
Steve Sakoman6329a8f2010-06-17 21:50:01 -0700483 ${LIST_ARMV7} \
Dirk Behme2781f802009-01-27 18:19:12 +0100484 ${LIST_at91} \
485 ${LIST_pxa} \
486 ${LIST_ixp} \
wdenkf8062712005-01-09 23:16:25 +0000487"
wdenk7ebf7442002-11-02 23:17:16 +0000488
wdenkbb1b8262003-03-27 12:09:35 +0000489#########################################################################
Wolfgang Denkbc8c5002005-08-14 00:27:00 +0200490## MIPS Systems (default = big endian)
wdenkbb1b8262003-03-27 12:09:35 +0000491#########################################################################
492
Kim Phillips8c0c8932007-08-10 15:34:48 -0500493LIST_mips4kc=" \
494 incaip \
Vlad Lungu635e76c2008-01-16 19:27:51 +0200495 qemu_mips \
Stefan Roeseee7a6ba2009-01-21 17:25:01 +0100496 vct_platinum \
497 vct_platinum_small \
498 vct_platinum_onenand \
499 vct_platinum_onenand_small \
500 vct_platinumavc \
501 vct_platinumavc_small \
502 vct_platinumavc_onenand \
503 vct_platinumavc_onenand_small \
504 vct_premium \
505 vct_premium_small \
506 vct_premium_onenand \
507 vct_premium_onenand_small \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500508"
wdenkbb1b8262003-03-27 12:09:35 +0000509
Kim Phillips8c0c8932007-08-10 15:34:48 -0500510LIST_mips5kc=" \
511 purple \
512"
wdenkb02744a2003-04-05 00:53:31 +0000513
Kim Phillips8c0c8932007-08-10 15:34:48 -0500514LIST_au1xx0=" \
515 dbau1000 \
516 dbau1100 \
517 dbau1500 \
518 dbau1550 \
519 dbau1550_el \
520 gth2 \
521"
wdenk9b7f3842003-10-09 20:09:04 +0000522
Kim Phillips8c0c8932007-08-10 15:34:48 -0500523LIST_mips=" \
524 ${LIST_mips4kc} \
525 ${LIST_mips5kc} \
526 ${LIST_au1xx0} \
527"
wdenkbb1b8262003-03-27 12:09:35 +0000528
wdenkabda5ca2003-05-31 18:35:21 +0000529#########################################################################
Wolfgang Denkbc8c5002005-08-14 00:27:00 +0200530## MIPS Systems (little endian)
531#########################################################################
532
533LIST_mips4kc_el=""
534
535LIST_mips5kc_el=""
536
Kim Phillips8c0c8932007-08-10 15:34:48 -0500537LIST_au1xx0_el=" \
538 dbau1550_el \
Shinya Kuribayashi2437cfb2007-10-27 15:00:25 +0900539 pb1000 \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500540"
Wolfgang Denkbc8c5002005-08-14 00:27:00 +0200541
Kim Phillips8c0c8932007-08-10 15:34:48 -0500542LIST_mips_el=" \
543 ${LIST_mips4kc_el} \
544 ${LIST_mips5kc_el} \
545 ${LIST_au1xx0_el} \
546"
Wolfgang Denkbc8c5002005-08-14 00:27:00 +0200547
548#########################################################################
wdenkabda5ca2003-05-31 18:35:21 +0000549## i386 Systems
550#########################################################################
551
Mike Frysinger74971502010-10-20 03:34:19 -0400552LIST_x86="$(boards_by_arch i386)"
wdenkabda5ca2003-05-31 18:35:21 +0000553
wdenk3be717f2004-01-03 19:43:48 +0000554#########################################################################
wdenkef3386f2004-10-10 21:27:30 +0000555## Nios-II Systems
556#########################################################################
557
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400558LIST_nios2="$(boards_by_arch nios2)
Thomas Chou7ffbbf52010-04-21 08:40:59 +0800559 nios2-generic \
Wolfgang Denkb4b1c462006-06-10 19:27:47 +0200560"
wdenkef3386f2004-10-10 21:27:30 +0000561
562#########################################################################
wdenk20a61222004-07-10 23:48:41 +0000563## MicroBlaze Systems
564#########################################################################
565
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400566LIST_microblaze="$(boards_by_arch microblaze)"
wdenk20a61222004-07-10 23:48:41 +0000567
Zachary P. Landau1c3c0962006-01-26 17:38:46 -0500568#########################################################################
569## ColdFire Systems
570#########################################################################
571
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400572LIST_coldfire="$(boards_by_arch m68k)
Wolfgang Wegner406471c2010-01-25 11:27:44 +0100573 astro_mcf5373l \
Kim Phillips8c0c8932007-08-10 15:34:48 -0500574 cobra5272 \
575 EB+MCF-EV123 \
576 EB+MCF-EV123_internal \
TsiChungLiew99b037a2008-01-14 17:43:33 -0600577 M52277EVB \
TsiChungLiewb859ef12007-08-16 19:23:50 -0500578 M5235EVB \
TsiChungLiew6f8a0a32008-01-14 17:23:08 -0600579 M5329AFEE \
580 M5373EVB \
TsiChung Liew3cdc00a2008-08-11 13:41:49 +0000581 M54451EVB \
TsiChungLiewfc3ca3b2007-08-16 15:05:11 -0500582 M54455EVB \
TsiChungLiew8cb946d2008-01-15 14:15:46 -0600583 M5475AFE \
584 M5485AFE \
Heiko Schocherac1956e2006-04-20 08:42:42 +0200585"
Zachary P. Landau1c3c0962006-01-26 17:38:46 -0500586
Wolfgang Denk994ad962006-10-24 14:42:37 +0200587#########################################################################
588## AVR32 Systems
589#########################################################################
590
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400591LIST_avr32="$(boards_by_arch avr32)"
Wolfgang Denk994ad962006-10-24 14:42:37 +0200592
Aubrey.Li450c23e2007-03-09 13:40:56 +0800593#########################################################################
594## Blackfin Systems
595#########################################################################
596
Mike Frysingerdd18ab62010-10-19 02:41:26 -0400597LIST_blackfin="$(boards_by_arch blackfin)"
Aubrey.Li450c23e2007-03-09 13:40:56 +0800598
Jean-Christophe PLAGNIOL-VILLARDceee3382007-11-27 09:44:53 +0100599#########################################################################
600## SH Systems
601#########################################################################
602
Nobuhiro Iwamatsu0c4bcc72010-10-20 01:22:25 +0900603LIST_sh2="$(boards_by_cpu sh2)"
Nobuhiro Iwamatsu06ea8cf2010-10-20 01:28:29 +0900604LIST_sh3="$(boards_by_cpu sh3)"
Nobuhiro Iwamatsuc4c62342010-10-20 01:35:28 +0900605LIST_sh4="$(boards_by_cpu sh4)"
Jean-Christophe PLAGNIOL-VILLARDceee3382007-11-27 09:44:53 +0100606
Nobuhiro Iwamatsuc4c62342010-10-20 01:35:28 +0900607LIST_sh="$(boards_by_arch sh)"
Jean-Christophe PLAGNIOL-VILLARDceee3382007-11-27 09:44:53 +0100608
Daniel Hellstrom9d7c6b22008-03-28 09:47:00 +0100609#########################################################################
610## SPARC Systems
611#########################################################################
612
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400613LIST_sparc="$(boards_by_arch sparc)"
wdenk7ebf7442002-11-02 23:17:16 +0000614
615#-----------------------------------------------------------------------
616
617build_target() {
618 target=$1
619
620 ${MAKE} distclean >/dev/null
Kim Phillips5ac3c122010-09-14 14:48:16 -0500621 ${MAKE} -s ${target}_config
Marian Balakowiczd62379d2006-09-01 19:49:50 +0200622
623 ${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
624 | tee ${LOG_DIR}/$target.ERR
Peter Tysera5a27b92009-12-06 23:58:28 -0600625
626 # Check for 'make' errors
627 if [ ${PIPESTATUS[0]} -ne 0 ] ; then
628 RC=1
629 fi
630
Peter Tyser23240d22009-09-21 12:04:32 -0500631 if [ -s ${LOG_DIR}/$target.ERR ] ; then
632 ERR_CNT=$((ERR_CNT + 1))
633 ERR_LIST="${ERR_LIST} $target"
634 else
635 rm ${LOG_DIR}/$target.ERR
636 fi
637
638 TOTAL_CNT=$((TOTAL_CNT + 1))
Marian Balakowiczd62379d2006-09-01 19:49:50 +0200639
Mike Frysinger119432a2008-01-28 05:56:19 -0500640 ${CROSS_COMPILE}size ${BUILD_DIR}/u-boot \
Marian Balakowiczd62379d2006-09-01 19:49:50 +0200641 | tee -a ${LOG_DIR}/$target.MAKELOG
wdenk7ebf7442002-11-02 23:17:16 +0000642}
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400643build_targets() {
644 for t in "$@" ; do
645 # If a LIST_xxx var exists, use it. But avoid variable
646 # expansion in the eval when a board name contains certain
647 # characters that the shell interprets.
648 case ${t} in
649 *[-+=]*) list= ;;
650 *) list=$(eval echo '${LIST_'$t'}') ;;
651 esac
652 if [ -n "${list}" ] ; then
653 build_targets ${list}
654 else
655 build_target ${t}
656 fi
657 done
658}
wdenk7ebf7442002-11-02 23:17:16 +0000659
660#-----------------------------------------------------------------------
661
Peter Tyser23240d22009-09-21 12:04:32 -0500662print_stats() {
663 echo ""
664 echo "--------------------- SUMMARY ----------------------------"
665 echo "Boards compiled: ${TOTAL_CNT}"
666 if [ ${ERR_CNT} -gt 0 ] ; then
667 echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )"
668 fi
669 echo "----------------------------------------------------------"
Peter Tysera5a27b92009-12-06 23:58:28 -0600670
671 exit $RC
Peter Tyser23240d22009-09-21 12:04:32 -0500672}
wdenk7ebf7442002-11-02 23:17:16 +0000673
Peter Tyser23240d22009-09-21 12:04:32 -0500674#-----------------------------------------------------------------------
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400675
Wolfgang Denk7b74fec2010-10-17 12:26:48 +0200676# Build target groups selected by options, plus any command line args
677set -- ${SELECTED} "$@"
678# run PowerPC by default
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400679[ $# = 0 ] && set -- powerpc
Mike Frysingerb374bdb2010-08-19 13:05:06 -0400680build_targets "$@"