blob: 767d561c397fafceea04a044515e7bd6d9cc3863 [file] [log] [blame]
Peter Tyserf2352872009-12-06 23:58:28 -06001#!/bin/bash
wdenk7ebf7442002-11-02 23:17:16 +00002
Wolfgang Denk0777eaf2010-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 Tysercd57b0b2010-10-29 17:59:06 -050014# With the introduction of the board.cfg file, it has become possible
Wolfgang Denk0777eaf2010-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 Denk071bc922010-10-27 22:48:30 +020059# Note that we use `"$@"' to let each command-line parameter expand to a
Wolfgang Denk0777eaf2010-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 Tysercd57b0b2010-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 Denk0777eaf2010-10-17 12:26:48 +0200134fi
135
136#########################################################################
137
Peter Tyser40a28f02009-09-21 12:04:32 -0500138# Print statistics when we exit
139trap exit 1 2 3 15
140trap print_stats 0
141
Wolfgang Denk7fa6a2f2008-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 Tyser55f786d2009-09-21 12:04:33 -0500147 JOBS="-j $((BUILD_NCPUS + 1))"
Wolfgang Denk7fa6a2f2008-12-09 00:39:08 +0100148else
149 JOBS=""
150fi
151
wdenka8c7c702003-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 Balakowiczf9328632006-09-01 19:49:50 +0200159if [ "${MAKEALL_LOGDIR}" ] ; then
160 LOG_DIR=${MAKEALL_LOGDIR}
161else
162 LOG_DIR="LOG"
163fi
Stefan Roese887e2ec2006-09-07 11:51:23 +0200164
Marian Balakowiczf9328632006-09-01 19:49:50 +0200165if [ ! "${BUILD_DIR}" ] ; then
166 BUILD_DIR="."
167fi
168
Marian Balakowicz4f0645e2006-09-07 12:05:53 +0200169[ -d ${LOG_DIR} ] || mkdir ${LOG_DIR} || exit 1
wdenk7ebf7442002-11-02 23:17:16 +0000170
171LIST=""
172
Peter Tyser40a28f02009-09-21 12:04:32 -0500173# Keep track of the number of builds and errors
174ERR_CNT=0
175ERR_LIST=""
176TOTAL_CNT=0
Peter Tyserf2352872009-12-06 23:58:28 -0600177RC=0
Peter Tyser40a28f02009-09-21 12:04:32 -0500178
Mike Frysinger9ec49f82010-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 "$@" ; }
190
wdenk7ebf7442002-11-02 23:17:16 +0000191#########################################################################
wdenk0db5bca2003-03-31 17:27:09 +0000192## MPC5xx Systems
193#########################################################################
194
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400195LIST_5xx="$(boards_by_cpu mpc5xx)"
wdenk0db5bca2003-03-31 17:27:09 +0000196
197#########################################################################
wdenk945af8d2003-07-16 21:53:01 +0000198## MPC5xxx Systems
199#########################################################################
200
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200201LIST_5xxx="$(boards_by_cpu mpc5xxx)"
wdenk945af8d2003-07-16 21:53:01 +0000202
203#########################################################################
Rafal Jaworowski8993e542007-07-27 14:43:59 +0200204## MPC512x Systems
205#########################################################################
206
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200207LIST_512x="$(boards_by_cpu mpc512x)"
wdenk7ebf7442002-11-02 23:17:16 +0000208
209#########################################################################
210## MPC8xx Systems
211#########################################################################
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400212
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200213LIST_8xx="$(boards_by_cpu mpc8xx)"
wdenk7ebf7442002-11-02 23:17:16 +0000214
215#########################################################################
216## PPC4xx Systems
217#########################################################################
218
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200219LIST_4xx="$(boards_by_cpu ppc4xx)"
wdenk7ebf7442002-11-02 23:17:16 +0000220
221#########################################################################
wdenk983fda82004-10-28 00:09:35 +0000222## MPC8220 Systems
223#########################################################################
224
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400225LIST_8220="$(boards_by_cpu mpc8220)"
wdenk983fda82004-10-28 00:09:35 +0000226
227#########################################################################
wdenk7ebf7442002-11-02 23:17:16 +0000228## MPC824x Systems
229#########################################################################
230
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200231LIST_824x="$(boards_by_cpu mpc824x)"
wdenk592c5ca2003-06-21 00:17:24 +0000232
wdenk7ebf7442002-11-02 23:17:16 +0000233#########################################################################
wdenk7aa78612003-05-03 15:50:43 +0000234## MPC8260 Systems (includes 8250, 8255 etc.)
wdenk7ebf7442002-11-02 23:17:16 +0000235#########################################################################
236
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200237LIST_8260="$(boards_by_cpu mpc8260)"
wdenk7ebf7442002-11-02 23:17:16 +0000238
239#########################################################################
Eran Libertyf046ccd2005-07-28 10:08:46 -0500240## MPC83xx Systems (includes 8349, etc.)
241#########################################################################
242
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200243LIST_83xx="$(boards_by_cpu mpc83xx)"
Eran Libertyf046ccd2005-07-28 10:08:46 -0500244
245#########################################################################
wdenk42d1f032003-10-15 23:53:47 +0000246## MPC85xx Systems (includes 8540, 8560 etc.)
247#########################################################################
248
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200249LIST_85xx="$(boards_by_cpu mpc85xx)"
wdenk42d1f032003-10-15 23:53:47 +0000250
251#########################################################################
Jon Loeliger822d5532007-05-23 14:09:46 -0500252## MPC86xx Systems
253#########################################################################
254
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200255LIST_86xx="$(boards_by_cpu mpc86xx)"
Jon Loeliger822d5532007-05-23 14:09:46 -0500256
257#########################################################################
wdenk7ebf7442002-11-02 23:17:16 +0000258## 74xx/7xx Systems
259#########################################################################
260
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200261LIST_74xx_7xx="$(boards_by_cpu 74xx_7xx)"
wdenk7ebf7442002-11-02 23:17:16 +0000262
Wolfgang Denkd9a42c02008-04-20 15:35:52 -0700263#########################################################################
264## PowerPC groups
265#########################################################################
266
267LIST_TSEC=" \
268 ${LIST_83xx} \
269 ${LIST_85xx} \
270 ${LIST_86xx} \
271"
272
Stefan Roesea47a12b2010-04-15 16:07:28 +0200273LIST_powerpc=" \
Kim Phillipsfb565792007-08-10 15:34:48 -0500274 ${LIST_5xx} \
Jean-Christophe PLAGNIOL-VILLARD3deca9d2007-11-25 22:39:25 +0100275 ${LIST_512x} \
Kim Phillipsfb565792007-08-10 15:34:48 -0500276 ${LIST_5xxx} \
277 ${LIST_8xx} \
278 ${LIST_8220} \
279 ${LIST_824x} \
280 ${LIST_8260} \
281 ${LIST_83xx} \
282 ${LIST_85xx} \
283 ${LIST_86xx} \
284 ${LIST_4xx} \
Wolfgang Denk2ae18242010-10-06 09:05:45 +0200285 ${LIST_74xx_7xx}\
Kim Phillipsfb565792007-08-10 15:34:48 -0500286"
wdenk7ebf7442002-11-02 23:17:16 +0000287
Stefan Roesea47a12b2010-04-15 16:07:28 +0200288# Alias "ppc" -> "powerpc" to not break compatibility with older scripts
289# still using "ppc" instead of "powerpc"
290LIST_ppc=" \
291 ${LIST_powerpc} \
292"
293
wdenk7ebf7442002-11-02 23:17:16 +0000294#########################################################################
295## StrongARM Systems
296#########################################################################
297
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400298LIST_SA="$(boards_by_cpu sa1100)"
wdenk7ebf7442002-11-02 23:17:16 +0000299
300#########################################################################
301## ARM7 Systems
302#########################################################################
303
Kim Phillipsfb565792007-08-10 15:34:48 -0500304LIST_ARM7=" \
305 ap7 \
306 ap720t \
307 armadillo \
308 B2 \
309 ep7312 \
310 evb4510 \
311 impa7 \
312 integratorap \
313 lpc2292sodimm \
314 modnet50 \
315 SMN42 \
Wolfgang Denk74f43042005-09-25 01:48:28 +0200316"
wdenk7ebf7442002-11-02 23:17:16 +0000317
318#########################################################################
319## ARM9 Systems
320#########################################################################
321
Kim Phillipsfb565792007-08-10 15:34:48 -0500322LIST_ARM9=" \
Po-Yu Chuang43a5f0d2009-11-11 17:27:30 +0800323 a320evb \
Kim Phillipsfb565792007-08-10 15:34:48 -0500324 ap920t \
325 ap922_XA10 \
326 ap926ejs \
327 ap946es \
328 ap966 \
329 cp920t \
330 cp922_XA10 \
331 cp926ejs \
332 cp946es \
333 cp966 \
Sekhar Nori2819e132009-11-12 11:09:25 -0500334 da830evm \
Sudhakar Rajashekhara89b765c2010-06-10 15:18:15 +0530335 da850evm \
Matthias Kaehlckecf3c1422010-02-01 21:29:48 +0100336 edb9301 \
337 edb9302 \
338 edb9302a \
339 edb9307 \
340 edb9307a \
341 edb9312 \
342 edb9315 \
343 edb9315a \
Albert Aribaudce9c2272010-06-17 19:38:21 +0530344 edminiv2 \
Siddarth Gore16b76702010-03-18 20:25:40 +0530345 guruplug \
Ilya Yanok10bc2412009-08-11 02:32:09 +0400346 imx27lite \
Matthias Weisser18a056a2010-08-09 13:31:51 +0200347 jadecpu \
Kim Phillipsfb565792007-08-10 15:34:48 -0500348 lpd7a400 \
Heiko Schocherbbe31092010-03-05 07:36:33 +0100349 magnesium \
Prafulla Wadaskar4abc5bf2009-07-16 20:58:01 +0530350 mv88f6281gtw_ge \
Kim Phillipsfb565792007-08-10 15:34:48 -0500351 mx1ads \
352 mx1fs2 \
353 netstar \
Jean-Christophe PLAGNIOL-VILLARDceb70b42009-07-05 01:06:06 +0200354 nhk8815 \
355 nhk8815_onenand \
Kim Phillipsfb565792007-08-10 15:34:48 -0500356 omap1510inn \
357 omap1610h2 \
358 omap1610inn \
David Brownella3543d62008-01-18 12:45:45 -0800359 omap5912osk \
Kim Phillipsfb565792007-08-10 15:34:48 -0500360 omap730p2 \
Simon Kagstrome92daeb2009-09-22 04:01:01 +0530361 openrd_base \
Prafulla Wadaskarfbc83652009-07-16 21:02:24 +0530362 rd6281a \
Kim Phillipsfb565792007-08-10 15:34:48 -0500363 sbc2410x \
364 scb9328 \
Prafulla Wadaskar55dd4ba2009-07-16 20:58:00 +0530365 sheevaplug \
Kim Phillipsfb565792007-08-10 15:34:48 -0500366 smdk2400 \
367 smdk2410 \
Vipin KUMAR7e074152010-01-15 19:15:50 +0530368 spear300 \
Vipin KUMAR080cfee2010-01-15 19:15:52 +0530369 spear310 \
Vipin KUMAR7da69232010-01-15 19:15:53 +0530370 spear320 \
Vipin KUMAR566c9c12010-01-15 19:15:48 +0530371 spear600 \
Heiko Schocher67fa8c22010-02-22 16:43:02 +0530372 suen3 \
Kim Phillipsfb565792007-08-10 15:34:48 -0500373 trab \
374 VCMA9 \
375 versatile \
376 versatileab \
377 versatilepb \
378 voiceblue \
379 davinci_dvevm \
380 davinci_schmoogie \
Hugo Villeneuvec7f879e2008-05-21 13:58:41 -0400381 davinci_sffsdr \
Kim Phillipsfb565792007-08-10 15:34:48 -0500382 davinci_sonata \
David Brownell28b00322009-05-15 23:48:37 +0200383 davinci_dm355evm \
Sandeep Paulraj5df65cf2009-10-10 13:37:10 -0400384 davinci_dm355leopard \
Sandeep Paulraj3fca2922010-02-17 21:09:21 -0500385 davinci_dm365evm \
Sandeep Paulraj6ab176d2009-10-10 12:00:47 -0400386 davinci_dm6467evm \
wdenk6f213472003-08-29 22:00:43 +0000387"
wdenk7ebf7442002-11-02 23:17:16 +0000388
389#########################################################################
Wolfgang Denk74f43042005-09-25 01:48:28 +0200390## ARM10 Systems
391#########################################################################
Kim Phillipsfb565792007-08-10 15:34:48 -0500392LIST_ARM10=" \
393 integratorcp \
394 cp1026 \
Wolfgang Denk74f43042005-09-25 01:48:28 +0200395"
396
397#########################################################################
wdenk8ed96042005-01-09 23:16:25 +0000398## ARM11 Systems
399#########################################################################
Guennadi Liakhovetski0c692672009-03-25 11:36:50 +0100400LIST_ARM11=" \
401 cp1136 \
402 omap2420h4 \
403 apollon \
404 imx31_litekit \
405 imx31_phycore \
406 imx31_phycore_eet \
407 mx31ads \
Magnus Lilja8449f282009-07-01 01:07:55 +0200408 mx31pdk \
Magnus Liljad08e5ca2009-07-04 10:31:24 +0200409 mx31pdk_nand \
Guennadi Liakhovetski0c692672009-03-25 11:36:50 +0100410 qong \
411 smdk6400 \
Cyril Chemparathy5cc48f72010-06-07 14:13:36 -0400412 tnetv107x_evm \
Wolfgang Denk74f43042005-09-25 01:48:28 +0200413"
wdenk8ed96042005-01-09 23:16:25 +0000414
415#########################################################################
Steve Sakomanf56348a2010-06-17 21:50:01 -0700416## ARMV7 Systems
Dirk Behmef904cdb2009-01-27 18:19:12 +0100417#########################################################################
Steve Sakomanf56348a2010-06-17 21:50:01 -0700418LIST_ARMV7=" \
Vaibhav Hiremathed01e452010-06-07 15:20:43 -0400419 am3517_evm \
Matt Waddelb80e41a2010-10-07 15:48:45 -0600420 ca9x4_ct_vxp \
Frederik Kriewitzc35d7cf2009-08-23 12:56:42 +0200421 devkit8000 \
Enric Balletbo i Serra8a3f6bb2010-10-14 16:54:59 -0400422 igep0020 \
Enric Balletbo i Serra1a832dc2010-10-14 16:57:39 -0400423 igep0030 \
Stefano Babicc5fb70c2010-02-05 15:13:58 +0100424 mx51evk \
Dirk Behmef904cdb2009-01-27 18:19:12 +0100425 omap3_beagle \
Dirk Behme9d0fc812009-01-28 21:39:57 +0100426 omap3_overo \
Dirk Behmead9bc8e2009-01-28 21:39:58 +0100427 omap3_evm \
Dirk Behme2be2c6c2009-01-28 21:39:58 +0100428 omap3_pandora \
Tom Rixe63e5902009-10-17 12:41:06 -0500429 omap3_sdp3430 \
Dirk Behme7379f452009-01-28 21:40:16 +0100430 omap3_zoom1 \
Tom Rix376aee72009-05-15 23:48:36 +0200431 omap3_zoom2 \
Steve Sakomanc57cca22010-06-11 20:35:26 -0700432 omap4_panda \
Steve Sakoman3e76d622010-06-08 13:07:46 -0700433 omap4_sdp4430 \
Minkyu Kangc474a8e2010-05-31 22:02:42 +0900434 s5p_goni \
Minkyu Kang8bc4ee92009-10-01 17:20:40 +0900435 smdkc100 \
Dirk Behmef904cdb2009-01-27 18:19:12 +0100436"
437
438#########################################################################
Jean-Christophe PLAGNIOL-VILLARD602cac12008-05-24 12:47:46 +0200439## AT91 Systems
440#########################################################################
441
Sedji Gaouaou22ee6472009-07-09 10:16:29 +0200442LIST_at91=" \
443 afeb9260 \
444 at91cap9adk \
445 at91rm9200dk \
446 at91rm9200ek \
447 at91sam9260ek \
448 at91sam9261ek \
449 at91sam9263ek \
Tom Rixd8380c92009-09-27 07:47:24 -0500450 at91sam9g10ek \
Sedji Gaouaou22ee6472009-07-09 10:16:29 +0200451 at91sam9g20ek \
Sedji Gaouaou5ccc2d92009-06-25 17:04:15 +0200452 at91sam9m10g45ek \
Sedji Gaouaou22ee6472009-07-09 10:16:29 +0200453 at91sam9rlek \
454 cmc_pu2 \
Tom Rixd8380c92009-09-27 07:47:24 -0500455 CPUAT91 \
Tom Rix23b80982009-09-27 11:10:09 -0500456 CPU9260 \
457 CPU9G20 \
Sedji Gaouaou22ee6472009-07-09 10:16:29 +0200458 csb637 \
Jens Scharsig77e72732010-02-03 22:48:09 +0100459 eb_cpux9k2 \
Sedji Gaouaou22ee6472009-07-09 10:16:29 +0200460 kb9202 \
461 meesc \
462 mp2usb \
463 m501sk \
Daniel Gorsulowski44d80252010-01-25 10:50:41 +0100464 otc570 \
Sedji Gaouaou22ee6472009-07-09 10:16:29 +0200465 pm9261 \
466 pm9263 \
Asen Dimovb5d289f2010-04-20 22:49:04 +0300467 pm9g45 \
Albin Tonnerre2dc851e2009-08-20 16:04:49 +0200468 SBC35_A9G20 \
469 TNY_A9260 \
470 TNY_A9G20 \
Jean-Christophe PLAGNIOL-VILLARD602cac12008-05-24 12:47:46 +0200471"
472
473#########################################################################
wdenk7ebf7442002-11-02 23:17:16 +0000474## Xscale Systems
475#########################################################################
476
Marek Vasut7c957c02010-10-04 00:21:51 +0200477LIST_pxa="$(boards_by_cpu pxa)"
wdenk7ebf7442002-11-02 23:17:16 +0000478
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400479LIST_ixp="$(boards_by_cpu ixp)
Kim Phillipsfb565792007-08-10 15:34:48 -0500480 pdnb3 \
481 scpu \
482"
wdenk7ebf7442002-11-02 23:17:16 +0000483
Wolfgang Denkd9a42c02008-04-20 15:35:52 -0700484#########################################################################
485## ARM groups
486#########################################################################
wdenk2d5b5612003-10-14 19:43:55 +0000487
Dirk Behmef904cdb2009-01-27 18:19:12 +0100488LIST_arm=" \
489 ${LIST_SA} \
490 ${LIST_ARM7} \
491 ${LIST_ARM9} \
492 ${LIST_ARM10} \
493 ${LIST_ARM11} \
Steve Sakomanf56348a2010-06-17 21:50:01 -0700494 ${LIST_ARMV7} \
Dirk Behmef904cdb2009-01-27 18:19:12 +0100495 ${LIST_at91} \
496 ${LIST_pxa} \
497 ${LIST_ixp} \
wdenk8ed96042005-01-09 23:16:25 +0000498"
wdenk7ebf7442002-11-02 23:17:16 +0000499
wdenkc0218802003-03-27 12:09:35 +0000500#########################################################################
Wolfgang Denkb62bdff2005-08-14 00:27:00 +0200501## MIPS Systems (default = big endian)
wdenkc0218802003-03-27 12:09:35 +0000502#########################################################################
503
Kim Phillipsfb565792007-08-10 15:34:48 -0500504LIST_mips4kc=" \
505 incaip \
Vlad Lungu0764c162008-01-16 19:27:51 +0200506 qemu_mips \
Stefan Roese2a61eff2009-01-21 17:25:01 +0100507 vct_platinum \
508 vct_platinum_small \
509 vct_platinum_onenand \
510 vct_platinum_onenand_small \
511 vct_platinumavc \
512 vct_platinumavc_small \
513 vct_platinumavc_onenand \
514 vct_platinumavc_onenand_small \
515 vct_premium \
516 vct_premium_small \
517 vct_premium_onenand \
518 vct_premium_onenand_small \
Kim Phillipsfb565792007-08-10 15:34:48 -0500519"
wdenkc0218802003-03-27 12:09:35 +0000520
Kim Phillipsfb565792007-08-10 15:34:48 -0500521LIST_mips5kc=" \
522 purple \
523"
wdenk3e386912003-04-05 00:53:31 +0000524
Kim Phillipsfb565792007-08-10 15:34:48 -0500525LIST_au1xx0=" \
526 dbau1000 \
527 dbau1100 \
528 dbau1500 \
529 dbau1550 \
530 dbau1550_el \
531 gth2 \
532"
wdenk5da627a2003-10-09 20:09:04 +0000533
Kim Phillipsfb565792007-08-10 15:34:48 -0500534LIST_mips=" \
535 ${LIST_mips4kc} \
536 ${LIST_mips5kc} \
537 ${LIST_au1xx0} \
538"
wdenkc0218802003-03-27 12:09:35 +0000539
wdenk7a8e9bed2003-05-31 18:35:21 +0000540#########################################################################
Wolfgang Denkb62bdff2005-08-14 00:27:00 +0200541## MIPS Systems (little endian)
542#########################################################################
543
544LIST_mips4kc_el=""
545
546LIST_mips5kc_el=""
547
Kim Phillipsfb565792007-08-10 15:34:48 -0500548LIST_au1xx0_el=" \
549 dbau1550_el \
Shinya Kuribayashib09258c2007-10-27 15:00:25 +0900550 pb1000 \
Kim Phillipsfb565792007-08-10 15:34:48 -0500551"
Wolfgang Denkb62bdff2005-08-14 00:27:00 +0200552
Kim Phillipsfb565792007-08-10 15:34:48 -0500553LIST_mips_el=" \
554 ${LIST_mips4kc_el} \
555 ${LIST_mips5kc_el} \
556 ${LIST_au1xx0_el} \
557"
Wolfgang Denkb62bdff2005-08-14 00:27:00 +0200558
559#########################################################################
wdenk7a8e9bed2003-05-31 18:35:21 +0000560## i386 Systems
561#########################################################################
562
Mike Frysinger6d79c392010-10-20 03:34:19 -0400563LIST_x86="$(boards_by_arch i386)"
wdenk7a8e9bed2003-05-31 18:35:21 +0000564
wdenkc935d3b2004-01-03 19:43:48 +0000565#########################################################################
wdenk5c952cf2004-10-10 21:27:30 +0000566## Nios-II Systems
567#########################################################################
568
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400569LIST_nios2="$(boards_by_arch nios2)
Thomas Chou8cbb0dd2010-04-21 08:40:59 +0800570 nios2-generic \
Wolfgang Denk4176c792006-06-10 19:27:47 +0200571"
wdenk5c952cf2004-10-10 21:27:30 +0000572
573#########################################################################
wdenk857cad32004-07-10 23:48:41 +0000574## MicroBlaze Systems
575#########################################################################
576
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400577LIST_microblaze="$(boards_by_arch microblaze)"
wdenk857cad32004-07-10 23:48:41 +0000578
Zachary P. Landauf8c3b4f2006-01-26 17:38:46 -0500579#########################################################################
580## ColdFire Systems
581#########################################################################
582
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400583LIST_coldfire="$(boards_by_arch m68k)
Wolfgang Wegner9d79e572010-01-25 11:27:44 +0100584 astro_mcf5373l \
Kim Phillipsfb565792007-08-10 15:34:48 -0500585 cobra5272 \
586 EB+MCF-EV123 \
587 EB+MCF-EV123_internal \
TsiChungLiew1552af72008-01-14 17:43:33 -0600588 M52277EVB \
TsiChungLiew4a442d32007-08-16 19:23:50 -0500589 M5235EVB \
TsiChungLiewaa5f1f92008-01-14 17:23:08 -0600590 M5329AFEE \
591 M5373EVB \
TsiChung Liew05316f82008-08-11 13:41:49 +0000592 M54451EVB \
TsiChungLiew8ae158c2007-08-16 15:05:11 -0500593 M54455EVB \
TsiChungLiew57a12722008-01-15 14:15:46 -0600594 M5475AFE \
595 M5485AFE \
Heiko Schocher9acb6262006-04-20 08:42:42 +0200596"
Zachary P. Landauf8c3b4f2006-01-26 17:38:46 -0500597
Wolfgang Denk6ccec442006-10-24 14:42:37 +0200598#########################################################################
599## AVR32 Systems
600#########################################################################
601
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400602LIST_avr32="$(boards_by_arch avr32)"
Wolfgang Denk6ccec442006-10-24 14:42:37 +0200603
Aubrey.Lief26a082007-03-09 13:40:56 +0800604#########################################################################
605## Blackfin Systems
606#########################################################################
607
Mike Frysinger36cf8cb2010-10-19 02:41:26 -0400608LIST_blackfin="$(boards_by_arch blackfin)"
Aubrey.Lief26a082007-03-09 13:40:56 +0800609
Jean-Christophe PLAGNIOL-VILLARDc7144372007-11-27 09:44:53 +0100610#########################################################################
611## SH Systems
612#########################################################################
613
Nobuhiro Iwamatsue0f0e522010-10-20 01:22:25 +0900614LIST_sh2="$(boards_by_cpu sh2)"
Nobuhiro Iwamatsu3771c692010-10-20 01:28:29 +0900615LIST_sh3="$(boards_by_cpu sh3)"
Nobuhiro Iwamatsu03626be2010-10-20 01:35:28 +0900616LIST_sh4="$(boards_by_cpu sh4)"
Wolfgang Denkd9a42c02008-04-20 15:35:52 -0700617
Nobuhiro Iwamatsu03626be2010-10-20 01:35:28 +0900618LIST_sh="$(boards_by_arch sh)"
Jean-Christophe PLAGNIOL-VILLARDc7144372007-11-27 09:44:53 +0100619
Daniel Hellstromc2f02da2008-03-28 09:47:00 +0100620#########################################################################
621## SPARC Systems
622#########################################################################
623
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400624LIST_sparc="$(boards_by_arch sparc)"
wdenk7ebf7442002-11-02 23:17:16 +0000625
626#-----------------------------------------------------------------------
627
628build_target() {
629 target=$1
630
631 ${MAKE} distclean >/dev/null
Kim Phillipsd70d8cc2010-09-14 14:48:16 -0500632 ${MAKE} -s ${target}_config
Marian Balakowiczf9328632006-09-01 19:49:50 +0200633
634 ${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
635 | tee ${LOG_DIR}/$target.ERR
Peter Tyserf2352872009-12-06 23:58:28 -0600636
637 # Check for 'make' errors
638 if [ ${PIPESTATUS[0]} -ne 0 ] ; then
639 RC=1
640 fi
641
Peter Tyser40a28f02009-09-21 12:04:32 -0500642 if [ -s ${LOG_DIR}/$target.ERR ] ; then
643 ERR_CNT=$((ERR_CNT + 1))
644 ERR_LIST="${ERR_LIST} $target"
645 else
646 rm ${LOG_DIR}/$target.ERR
647 fi
648
649 TOTAL_CNT=$((TOTAL_CNT + 1))
Marian Balakowiczf9328632006-09-01 19:49:50 +0200650
Mike Frysinger208447f2008-01-28 05:56:19 -0500651 ${CROSS_COMPILE}size ${BUILD_DIR}/u-boot \
Marian Balakowiczf9328632006-09-01 19:49:50 +0200652 | tee -a ${LOG_DIR}/$target.MAKELOG
wdenk7ebf7442002-11-02 23:17:16 +0000653}
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400654build_targets() {
655 for t in "$@" ; do
656 # If a LIST_xxx var exists, use it. But avoid variable
657 # expansion in the eval when a board name contains certain
658 # characters that the shell interprets.
659 case ${t} in
660 *[-+=]*) list= ;;
661 *) list=$(eval echo '${LIST_'$t'}') ;;
662 esac
663 if [ -n "${list}" ] ; then
664 build_targets ${list}
665 else
666 build_target ${t}
667 fi
668 done
669}
wdenk7ebf7442002-11-02 23:17:16 +0000670
671#-----------------------------------------------------------------------
672
Peter Tyser40a28f02009-09-21 12:04:32 -0500673print_stats() {
674 echo ""
675 echo "--------------------- SUMMARY ----------------------------"
676 echo "Boards compiled: ${TOTAL_CNT}"
677 if [ ${ERR_CNT} -gt 0 ] ; then
678 echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )"
679 fi
680 echo "----------------------------------------------------------"
Peter Tyserf2352872009-12-06 23:58:28 -0600681
682 exit $RC
Peter Tyser40a28f02009-09-21 12:04:32 -0500683}
wdenk7ebf7442002-11-02 23:17:16 +0000684
Peter Tyser40a28f02009-09-21 12:04:32 -0500685#-----------------------------------------------------------------------
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400686
Wolfgang Denk0777eaf2010-10-17 12:26:48 +0200687# Build target groups selected by options, plus any command line args
688set -- ${SELECTED} "$@"
689# run PowerPC by default
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400690[ $# = 0 ] && set -- powerpc
Mike Frysinger9ec49f82010-08-19 13:05:06 -0400691build_targets "$@"