Blame view

MAKEALL 23.1 KB
f2352877c   Peter Tyser   MAKEALL: Fix retu...
1
  #!/bin/bash
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
2
3
4
  # Tool mainly for U-Boot Quality Assurance: build one or more board
  # configurations with minimal verbosity, showing only warnings and
  # errors.
eca3aeb35   Wolfgang Denk   Licenses: introdu...
5
6
  #
  # SPDX-License-Identifier:	GPL-2.0+
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
7

d8e392d95   Mike Frysinger   MAKEALL: add -h/-...
8
9
10
11
12
13
14
15
16
17
18
19
20
  usage()
  {
  	# if exiting with 0, write to stdout, else write to stderr
  	local ret=${1:-0}
  	[ "${ret}" -eq 1 ] && exec 1>&2
  	cat <<-EOF
  	Usage: MAKEALL [options] [--] [boards-to-build]
  
  	Options:
  	  -a ARCH,   --arch ARCH       Build all boards with arch ARCH
  	  -c CPU,    --cpu CPU         Build all boards with cpu CPU
  	  -v VENDOR, --vendor VENDOR   Build all boards with vendor VENDOR
  	  -s SOC,    --soc SOC         Build all boards with soc SOC
4d1584bd0   Masahiro Yamada   MAKEALL: add -b (...
21
  	  -b BOARD,  --board BOARD     Build all boards with board name BOARD
7f79c6f2f   Marek Vasut   MAKEALL: Add -l o...
22
  	  -l,        --list            List all targets to be built
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
23
24
  	  -m,        --maintainers     List all targets and maintainer email
  	  -M,        --mails           List all targets and all affilated emails
33f336d52   Kim Phillips   MAKEALL: add a -C...
25
  	  -C,        --check           Enable build checking
085102047   Joe Hershberger   MAKEALL: Add opti...
26
27
  	  -n,        --continue        Continue (skip boards already built)
  	  -r,        --rebuild-errors  Rebuild any boards that errored
d8e392d95   Mike Frysinger   MAKEALL: add -h/-...
28
29
30
31
32
33
34
35
36
37
38
39
40
  	  -h,        --help            This help output
  
  	Selections by these options are logically ANDed; if the same option
  	is used repeatedly, such selections are ORed.  So "-v FOO -v BAR"
  	will select all configurations where the vendor is either FOO or
  	BAR.  Any additional arguments specified on the command line are
  	always build additionally.  See the boards.cfg file for more info.
  
  	If no boards are specified, then the default is "powerpc".
  
  	Environment variables:
  	  BUILD_NCPUS      number of parallel make jobs (default: auto)
  	  CROSS_COMPILE    cross-compiler toolchain prefix (default: "")
47104c37d   Allen Martin   MAKEALL: add supp...
41
  	  CROSS_COMPILE_<ARCH> cross-compiler toolchain prefix for
93e145964   Wolfgang Denk   Coding Style clea...
42
43
  			   architecture "ARCH".  Substitute "ARCH" for any
  			   supported architecture (default: "")
d8e392d95   Mike Frysinger   MAKEALL: add -h/-...
44
45
  	  MAKEALL_LOGDIR   output all logs to here (default: ./LOG/)
  	  BUILD_DIR        output build directory (default: ./)
f588bb034   Andy Fleming   Allow for paralle...
46
  	  BUILD_NBUILDS	   number of parallel targets (default: 1)
d8e392d95   Mike Frysinger   MAKEALL: add -h/-...
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  
  	Examples:
  	  - build all Power Architecture boards:
  	      MAKEALL -a powerpc
  	      MAKEALL --arch powerpc
  	      MAKEALL powerpc
  	  - build all PowerPC boards manufactured by vendor "esd":
  	      MAKEALL -a powerpc -v esd
  	  - build all PowerPC boards manufactured either by "keymile" or "siemens":
  	      MAKEALL -a powerpc -v keymile -v siemens
  	  - build all Freescale boards with MPC83xx CPUs, plus all 4xx boards:
  	      MAKEALL -c mpc83xx -v freescale 4xx
  	EOF
  	exit ${ret}
  }
4d1584bd0   Masahiro Yamada   MAKEALL: add -b (...
62
63
  SHORT_OPTS="ha:c:v:s:b:lmMCnr"
  LONG_OPTS="help,arch:,cpu:,vendor:,soc:,board:,list,maintainers,mails,check,continue,rebuild-errors"
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
64
65
  
  # Option processing based on util-linux-2.13/getopt-parse.bash
071bc9233   Wolfgang Denk   Coding Style cleanup
66
  # Note that we use `"$@"' to let each command-line parameter expand to a
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
67
68
69
70
71
  # separate word. The quotes around `$@' are essential!
  # We need TEMP as the `eval set --' would nuke the return value of
  # getopt.
  TEMP=`getopt -o ${SHORT_OPTS} --long ${LONG_OPTS} \
       -n 'MAKEALL' -- "$@"`
d8e392d95   Mike Frysinger   MAKEALL: add -h/-...
72
  [ $? != 0 ] && usage 1
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
73
74
75
76
77
  
  # Note the quotes around `$TEMP': they are essential!
  eval set -- "$TEMP"
  
  SELECTED=''
7f79c6f2f   Marek Vasut   MAKEALL: Add -l o...
78
  ONLY_LIST=''
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
79
80
  PRINT_MAINTS=''
  MAINTAINERS_ONLY=''
085102047   Joe Hershberger   MAKEALL: Add opti...
81
82
  CONTINUE=''
  REBUILD_ERRORS=''
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
  
  while true ; do
  	case "$1" in
  	-a|--arch)
  		# echo "Option ARCH: argument \`$2'"
  		if [ "$opt_a" ] ; then
  			opt_a="${opt_a%)} || \$2 == \"$2\")"
  		else
  			opt_a="(\$2 == \"$2\")"
  		fi
  		SELECTED='y'
  		shift 2 ;;
  	-c|--cpu)
  		# echo "Option CPU: argument \`$2'"
  		if [ "$opt_c" ] ; then
aa2e279d2   Allen Martin   MAKEALL: update t...
98
  			opt_c="${opt_c%)} || \$3 == \"$2\" || \$3 ~ /$2:/)"
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
99
  		else
aa2e279d2   Allen Martin   MAKEALL: update t...
100
  			opt_c="(\$3 == \"$2\" || \$3 ~ /$2:/)"
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
101
102
103
104
105
106
  		fi
  		SELECTED='y'
  		shift 2 ;;
  	-s|--soc)
  		# echo "Option SoC: argument \`$2'"
  		if [ "$opt_s" ] ; then
27af930e9   Albert ARIBAUD   Merge and reforma...
107
  			opt_s="${opt_s%)} || \$4 == \"$2\" || \$4 ~ /$2/)"
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
108
  		else
27af930e9   Albert ARIBAUD   Merge and reforma...
109
  			opt_s="(\$4 == \"$2\" || \$4 ~ /$2/)"
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
110
111
112
113
114
115
116
117
118
119
120
121
  		fi
  		SELECTED='y'
  		shift 2 ;;
  	-v|--vendor)
  		# echo "Option VENDOR: argument \`$2'"
  		if [ "$opt_v" ] ; then
  			opt_v="${opt_v%)} || \$5 == \"$2\")"
  		else
  			opt_v="(\$5 == \"$2\")"
  		fi
  		SELECTED='y'
  		shift 2 ;;
4d1584bd0   Masahiro Yamada   MAKEALL: add -b (...
122
123
124
125
126
127
128
129
130
131
132
  	-b|--board)
  		# echo "Option BOARD: argument \`$2'"
  		if [ "$opt_b" ] ; then
  			opt_b="${opt_b%)} || \$6 == \"$2\" || \$7 == \"$2\")"
  		else
  			# We need to check the 7th field too
  			# for boards whose 6th field is "-"
  			opt_b="(\$6 == \"$2\" || \$7 == \"$2\")"
  		fi
  		SELECTED='y'
  		shift 2 ;;
33f336d52   Kim Phillips   MAKEALL: add a -C...
133
134
135
  	-C|--check)
  		CHECK='C=1'
  		shift ;;
085102047   Joe Hershberger   MAKEALL: Add opti...
136
137
138
139
140
141
  	-n|--continue)
  		CONTINUE='y'
  		shift ;;
  	-r|--rebuild-errors)
  		REBUILD_ERRORS='y'
  		shift ;;
7f79c6f2f   Marek Vasut   MAKEALL: Add -l o...
142
143
144
  	-l|--list)
  		ONLY_LIST='y'
  		shift ;;
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
145
146
147
148
149
150
151
152
153
  	-m|--maintainers)
  		ONLY_LIST='y'
  		PRINT_MAINTS='y'
  		MAINTAINERS_ONLY='y'
  		shift ;;
  	-M|--mails)
  		ONLY_LIST='y'
  		PRINT_MAINTS='y'
  		shift ;;
d8e392d95   Mike Frysinger   MAKEALL: add -h/-...
154
155
  	-h|--help)
  		usage ;;
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
156
157
158
159
160
161
  	--)
  		shift ; break ;;
  	*)
  		echo "Internal error!" >&2 ; exit 1 ;;
  	esac
  done
e18fd9405   Masahiro Yamada   MAKEALL: make sur...
162
163
164
165
166
  
  GNU_MAKE=$(scripts/show-gnu-make) || {
  	echo "GNU Make not found" >&2
  	exit 1
  }
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
167
168
  # echo "Remaining arguments:"
  # for arg do echo '--> '"\`$arg'" ; done
94ab8f411   Masahiro Yamada   MAKEALL: run genb...
169
170
171
172
  tools/genboardscfg.py || {
  	echo "Failed to generate boards.cfg" >&2
  	exit 1
  }
bb6da87d7   Masahiro Yamada   MAKEALL: adjust f...
173

0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
174
175
176
177
178
  FILTER="\$1 !~ /^#/"
  [ "$opt_a" ] && FILTER="${FILTER} && $opt_a"
  [ "$opt_c" ] && FILTER="${FILTER} && $opt_c"
  [ "$opt_s" ] && FILTER="${FILTER} && $opt_s"
  [ "$opt_v" ] && FILTER="${FILTER} && $opt_v"
4d1584bd0   Masahiro Yamada   MAKEALL: add -b (...
179
  [ "$opt_b" ] && FILTER="${FILTER} && $opt_b"
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
180
181
  
  if [ "$SELECTED" ] ; then
27af930e9   Albert ARIBAUD   Merge and reforma...
182
  	SELECTED=$(awk '('"$FILTER"') { print $7 }' boards.cfg)
cd57b0bb8   Peter Tyser   MAKEALL: Do a san...
183
184
185
186
187
188
  
  	# Make sure some boards from boards.cfg are actually found
  	if [ -z "$SELECTED" ] ; then
  		echo "Error: No boards selected, invalid arguments"
  		exit 1
  	fi
0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
189
190
191
  fi
  
  #########################################################################
40a28f088   Peter Tyser   MAKEALL: Add summ...
192
193
194
  # Print statistics when we exit
  trap exit 1 2 3 15
  trap print_stats 0
7fa6a2f3b   Wolfgang Denk   MAKEALL: Automati...
195
196
197
198
199
  # Determine number of CPU cores if no default was set
  : ${BUILD_NCPUS:="`getconf _NPROCESSORS_ONLN`"}
  
  if [ "$BUILD_NCPUS" -gt 1 ]
  then
55f786d8b   Peter Tyser   MAKEALL: Use POSI...
200
  	JOBS="-j $((BUILD_NCPUS + 1))"
7fa6a2f3b   Wolfgang Denk   MAKEALL: Automati...
201
202
203
  else
  	JOBS=""
  fi
f93286397   Marian Balakowicz   Add support for a...
204
205
206
207
208
  if [ "${MAKEALL_LOGDIR}" ] ; then
  	LOG_DIR=${MAKEALL_LOGDIR}
  else
  	LOG_DIR="LOG"
  fi
887e2ec9e   Stefan Roese   Add support for A...
209

f588bb034   Andy Fleming   Allow for paralle...
210
211
212
213
214
215
216
217
  : ${BUILD_NBUILDS:=1}
  BUILD_MANY=0
  
  if [ "${BUILD_NBUILDS}" -gt 1 ] ; then
  	BUILD_MANY=1
  	: ${BUILD_DIR:=./build}
  	mkdir -p "${BUILD_DIR}/ERR"
  	find "${BUILD_DIR}/ERR/" -type f -exec rm -f {} +
f93286397   Marian Balakowicz   Add support for a...
218
  fi
f588bb034   Andy Fleming   Allow for paralle...
219
220
221
222
223
  : ${BUILD_DIR:=.}
  
  OUTPUT_PREFIX="${BUILD_DIR}"
  
  [ -d ${LOG_DIR} ] || mkdir "${LOG_DIR}" || exit 1
085102047   Joe Hershberger   MAKEALL: Add opti...
224
225
226
  if [ "$CONTINUE" != 'y' -a "$REBUILD_ERRORS" != 'y' ] ; then
  	find "${LOG_DIR}/" -type f -exec rm -f {} +
  fi
7ebf7443a   wdenk   Initial revision
227
228
  
  LIST=""
40a28f088   Peter Tyser   MAKEALL: Add summ...
229
230
231
  # Keep track of the number of builds and errors
  ERR_CNT=0
  ERR_LIST=""
b86a475c1   Joe Hershberger   MAKEALL: Report b...
232
233
  WRN_CNT=0
  WRN_LIST=""
40a28f088   Peter Tyser   MAKEALL: Add summ...
234
  TOTAL_CNT=0
085102047   Joe Hershberger   MAKEALL: Add opti...
235
  SKIP_CNT=0
f588bb034   Andy Fleming   Allow for paralle...
236
237
  CURRENT_CNT=0
  OLDEST_IDX=1
f2352877c   Peter Tyser   MAKEALL: Fix retu...
238
  RC=0
40a28f088   Peter Tyser   MAKEALL: Add summ...
239

9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
240
  # Helper funcs for parsing boards.cfg
8948794a2   Masahiro Yamada   MAKEALL: rename b...
241
  targets_by_field()
9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
242
  {
8e5a2d425   Masahiro Yamada   MAKEALL: fix boar...
243
244
245
246
247
  	field=$1
  	regexp=$2
  
  	awk '($1 !~ /^#/ && $'"$field"' ~ /^'"$regexp"'$/) { print $7 }' \
  								boards.cfg
9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
248
  }
8e5a2d425   Masahiro Yamada   MAKEALL: fix boar...
249

8948794a2   Masahiro Yamada   MAKEALL: rename b...
250
251
252
  targets_by_arch() { targets_by_field 2 "$@" ; }
  targets_by_cpu()  { targets_by_field 3 "$@" ; targets_by_field 3 "$@:.*" ; }
  targets_by_soc()  { targets_by_field 4 "$@" ; }
9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
253

7ebf7443a   wdenk   Initial revision
254
  #########################################################################
0db5bca80   wdenk   * Patch by Martin...
255
256
  ## MPC5xx Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
257
  LIST_5xx="$(targets_by_cpu mpc5xx)"
0db5bca80   wdenk   * Patch by Martin...
258
259
  
  #########################################################################
945af8d72   wdenk   * Add support for...
260
261
  ## MPC5xxx Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
262
  LIST_5xxx="$(targets_by_cpu mpc5xxx)"
945af8d72   wdenk   * Add support for...
263
264
  
  #########################################################################
8993e54b6   Rafal Jaworowski   [ADS5121] Support...
265
266
  ## MPC512x Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
267
  LIST_512x="$(targets_by_cpu mpc512x)"
945af8d72   wdenk   * Add support for...
268
269
  
  #########################################################################
7ebf7443a   wdenk   Initial revision
270
271
  ## MPC8xx Systems
  #########################################################################
9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
272

8948794a2   Masahiro Yamada   MAKEALL: rename b...
273
  LIST_8xx="$(targets_by_cpu mpc8xx)"
7ebf7443a   wdenk   Initial revision
274
275
276
277
  
  #########################################################################
  ## PPC4xx Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
278
  LIST_4xx="$(targets_by_cpu ppc4xx)"
7ebf7443a   wdenk   Initial revision
279
280
281
282
  
  #########################################################################
  ## MPC824x Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
283
  LIST_824x="$(targets_by_cpu mpc824x)"
592c5cabe   wdenk   Patch by Murray J...
284

7ebf7443a   wdenk   Initial revision
285
  #########################################################################
7aa786147   wdenk   * Add support for...
286
  ## MPC8260 Systems (includes 8250, 8255 etc.)
7ebf7443a   wdenk   Initial revision
287
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
288
  LIST_8260="$(targets_by_cpu mpc8260)"
7ebf7443a   wdenk   Initial revision
289
290
  
  #########################################################################
f046ccd15   Eran Liberty   * Patch by Eran L...
291
292
  ## MPC83xx Systems (includes 8349, etc.)
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
293
  LIST_83xx="$(targets_by_cpu mpc83xx)"
f046ccd15   Eran Liberty   * Patch by Eran L...
294
295
  
  #########################################################################
42d1f0394   wdenk   * Patches by Xian...
296
297
  ## MPC85xx Systems (includes 8540, 8560 etc.)
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
298
  LIST_85xx="$(targets_by_cpu mpc85xx)"
42d1f0394   wdenk   * Patches by Xian...
299
300
  
  #########################################################################
822d55365   Jon Loeliger   Add LIST_86xx MAK...
301
302
  ## MPC86xx Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
303
  LIST_86xx="$(targets_by_cpu mpc86xx)"
822d55365   Jon Loeliger   Add LIST_86xx MAK...
304
305
  
  #########################################################################
7ebf7443a   wdenk   Initial revision
306
307
  ## 74xx/7xx Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
308
  LIST_74xx_7xx="$(targets_by_cpu 74xx_7xx)"
7ebf7443a   wdenk   Initial revision
309

d9a42c0ac   Wolfgang Denk   MAKEALL: sort ent...
310
311
312
313
314
315
316
317
318
  #########################################################################
  ## PowerPC groups
  #########################################################################
  
  LIST_TSEC="		\
  	${LIST_83xx}	\
  	${LIST_85xx}	\
  	${LIST_86xx}	\
  "
a47a12bec   Stefan Roese   Move arch/ppc to ...
319
  LIST_powerpc="		\
fb56579ff   Kim Phillips   make MAKEALL more...
320
  	${LIST_5xx}	\
3deca9d44   Jean-Christophe PLAGNIOL-VILLARD   MAKEALL: add miss...
321
  	${LIST_512x}	\
fb56579ff   Kim Phillips   make MAKEALL more...
322
323
  	${LIST_5xxx}	\
  	${LIST_8xx}	\
fb56579ff   Kim Phillips   make MAKEALL more...
324
325
326
327
328
329
  	${LIST_824x}	\
  	${LIST_8260}	\
  	${LIST_83xx}	\
  	${LIST_85xx}	\
  	${LIST_86xx}	\
  	${LIST_4xx}	\
2ae182419   Wolfgang Denk   Makefile: move al...
330
  	${LIST_74xx_7xx}\
fb56579ff   Kim Phillips   make MAKEALL more...
331
  "
7ebf7443a   wdenk   Initial revision
332

a47a12bec   Stefan Roese   Move arch/ppc to ...
333
334
335
336
337
  # Alias "ppc" -> "powerpc" to not break compatibility with older scripts
  # still using "ppc" instead of "powerpc"
  LIST_ppc="		\
  	${LIST_powerpc}	\
  "
7ebf7443a   wdenk   Initial revision
338
339
340
  #########################################################################
  ## StrongARM Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
341
  LIST_SA="$(targets_by_cpu sa1100)"
7ebf7443a   wdenk   Initial revision
342
343
  
  #########################################################################
cce5d210e   Allen Martin   MAKEALL: fix per ...
344
345
  ## ARM7 Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
346
  LIST_ARM7="$(targets_by_cpu arm720t)"
cce5d210e   Allen Martin   MAKEALL: fix per ...
347
348
  
  #########################################################################
7ebf7443a   wdenk   Initial revision
349
350
  ## ARM9 Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
351
352
353
  LIST_ARM9="$(targets_by_cpu arm920t)	\
  	$(targets_by_cpu arm926ejs)	\
  	$(targets_by_cpu arm946es)	\
6f21347d4   wdenk   * Patch by George...
354
  "
7ebf7443a   wdenk   Initial revision
355
356
  
  #########################################################################
8ed960461   wdenk   * Patches by Rich...
357
358
  ## ARM11 Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
359
360
  LIST_ARM11="$(targets_by_cpu arm1136)	\
  	$(targets_by_cpu arm1176)	\
cce5d210e   Allen Martin   MAKEALL: fix per ...
361
  "
8ed960461   wdenk   * Patches by Rich...
362
363
  
  #########################################################################
f56348af5   Steve Sakoman   ARM: Rename arch/...
364
  ## ARMV7 Systems
f904cdbb6   Dirk Behme   OMAP3: Add common...
365
  #########################################################################
f37586bb1   Dirk Behme   MAKEALL ARMv7: Us...
366

8948794a2   Masahiro Yamada   MAKEALL: rename b...
367
  LIST_ARMV7="$(targets_by_cpu armv7)"
f904cdbb6   Dirk Behme   OMAP3: Add common...
368
369
  
  #########################################################################
2475e6347   David Feng   arm64: MAKEALL, f...
370
371
372
373
374
375
  ## ARMV8 Systems
  #########################################################################
  
  LIST_ARMV8="$(targets_by_cpu armv8)"
  
  #########################################################################
602cac138   Jean-Christophe PLAGNIOL-VILLARD   MAKEALL: add at91...
376
377
  ## AT91 Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
378
  LIST_at91="$(targets_by_soc at91)"
602cac138   Jean-Christophe PLAGNIOL-VILLARD   MAKEALL: add at91...
379
380
  
  #########################################################################
7ebf7443a   wdenk   Initial revision
381
382
  ## Xscale Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
383
  LIST_pxa="$(targets_by_cpu pxa)"
7ebf7443a   wdenk   Initial revision
384

d9a42c0ac   Wolfgang Denk   MAKEALL: sort ent...
385
  #########################################################################
24dede480   Stefan Roese   MAKEALL: Add spea...
386
387
  ## SPEAr Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
388
  LIST_spear="$(targets_by_soc spear)"
24dede480   Stefan Roese   MAKEALL: Add spea...
389
390
  
  #########################################################################
d9a42c0ac   Wolfgang Denk   MAKEALL: sort ent...
391
392
  ## ARM groups
  #########################################################################
2d5b561e2   wdenk   * Make sure HUSH ...
393

2475e6347   David Feng   arm64: MAKEALL, f...
394
395
396
397
398
  LIST_arm="$(targets_by_arch arm |		\
  	for ARMV8_TARGET in $LIST_ARMV8;	\
  		do sed "/$ARMV8_TARGET/d";	\
  	done)					\
  "
7ebf7443a   wdenk   Initial revision
399

c021880ac   wdenk   * Add support for...
400
  #########################################################################
b62bdffb7   Wolfgang Denk   Adjust MAKEALL sc...
401
  ## MIPS Systems		(default = big endian)
c021880ac   wdenk   * Add support for...
402
  #########################################################################
ed638b6af   Daniel Schwierzeck   MAKEALL: remove h...
403
  LIST_mips="$(targets_by_arch mips)"
c021880ac   wdenk   * Add support for...
404

7a8e9bed1   wdenk   * Patch by Marc S...
405
  #########################################################################
deddf5d2e   Stefan Kristiansson   openrisc: Add arc...
406
407
  ## OpenRISC Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
408
  LIST_openrisc="$(targets_by_arch openrisc)"
b62bdffb7   Wolfgang Denk   Adjust MAKEALL sc...
409
410
  
  #########################################################################
fea257200   Graeme Russ   x86: Rename i386 ...
411
  ## x86 Systems
7a8e9bed1   wdenk   * Patch by Marc S...
412
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
413
  LIST_x86="$(targets_by_arch x86)"
7a8e9bed1   wdenk   * Patch by Marc S...
414

c935d3bd8   wdenk   Patches by Stepha...
415
  #########################################################################
5c952cf02   wdenk   Patches by Scott ...
416
417
  ## Nios-II Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
418
  LIST_nios2="$(targets_by_arch nios2)"
5c952cf02   wdenk   Patches by Scott ...
419
420
  
  #########################################################################
857cad37a   wdenk   Patches by Yasush...
421
422
  ## MicroBlaze Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
423
  LIST_microblaze="$(targets_by_arch microblaze)"
857cad37a   wdenk   Patches by Yasush...
424

f8c3b4f31   Zachary P. Landau   Add ColdFire targ...
425
426
427
  #########################################################################
  ## ColdFire Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
428
  LIST_m68k="$(targets_by_arch m68k)"
c13f47b0d   Mike Frysinger   MAKEALL: rename c...
429
  LIST_coldfire=${LIST_m68k}
f8c3b4f31   Zachary P. Landau   Add ColdFire targ...
430

6ccec4492   Wolfgang Denk   Add ATSTK1000 and...
431
432
433
  #########################################################################
  ## AVR32 Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
434
  LIST_avr32="$(targets_by_arch avr32)"
6ccec4492   Wolfgang Denk   Add ATSTK1000 and...
435

ef26a08fe   Aubrey.Li   [Blackfin][PATCH-...
436
437
438
  #########################################################################
  ## Blackfin Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
439
  LIST_blackfin="$(targets_by_arch blackfin)"
ef26a08fe   Aubrey.Li   [Blackfin][PATCH-...
440

c71443734   Jean-Christophe PLAGNIOL-VILLARD   sh: Add sh3 and s...
441
442
443
  #########################################################################
  ## SH Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
444
445
446
  LIST_sh2="$(targets_by_cpu sh2)"
  LIST_sh3="$(targets_by_cpu sh3)"
  LIST_sh4="$(targets_by_cpu sh4)"
d9a42c0ac   Wolfgang Denk   MAKEALL: sort ent...
447

8948794a2   Masahiro Yamada   MAKEALL: rename b...
448
  LIST_sh="$(targets_by_arch sh)"
c71443734   Jean-Christophe PLAGNIOL-VILLARD   sh: Add sh3 and s...
449

c2f02da21   Daniel Hellstrom   SPARC: Added gene...
450
451
452
  #########################################################################
  ## SPARC Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
453
  LIST_sparc="$(targets_by_arch sparc)"
7ebf7443a   wdenk   Initial revision
454

5f1719c10   Macpaul Lin   adp-ag101: add bo...
455
456
457
  #########################################################################
  ## NDS32 Systems
  #########################################################################
8948794a2   Masahiro Yamada   MAKEALL: rename b...
458
  LIST_nds32="$(targets_by_arch nds32)"
5f1719c10   Macpaul Lin   adp-ag101: add bo...
459

568c1fade   Alexey Brodkin   arc: add architec...
460
461
462
463
464
  #########################################################################
  ## ARC Systems
  #########################################################################
  
  LIST_arc="$(targets_by_arch arc)"
7ebf7443a   wdenk   Initial revision
465
  #-----------------------------------------------------------------------
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
466
467
468
469
470
471
472
473
  get_target_location() {
  	local target=$1
  	local BOARD_NAME=""
  	local CONFIG_NAME=""
  	local board=""
  	local vendor=""
  
  	# Automatic mode
23d6410c2   Masahiro Yamada   MAKEALL: fix awk ...
474
  	local line=`awk '\$7 == "'"$target"'" { print \$0 }' boards.cfg`
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
475
476
477
  	if [ -z "${line}" ] ; then echo "" ; return ; fi
  
  	set ${line}
bb6da87d7   Masahiro Yamada   MAKEALL: adjust f...
478
  	CONFIG_NAME="${7%_defconfig}"
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
479

bb6da87d7   Masahiro Yamada   MAKEALL: adjust f...
480
  	[ "${BOARD_NAME}" ] || BOARD_NAME="${7%_defconfig}"
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
481

27af930e9   Albert ARIBAUD   Merge and reforma...
482
483
484
485
486
487
  	if [ $# -gt 5 ]; then
  		if [ "$6" = "-" ] ; then
  			board=${BOARD_NAME}
  		else
  			board="$6"
  		fi
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
488
489
490
  	fi
  
  	[ $# -gt 4 ] && [ "$5" != "-" ] && vendor="$5"
27af930e9   Albert ARIBAUD   Merge and reforma...
491
492
  	[ $# -gt 6 ] && [ "$8" != "-" ] && {
  		tmp="${8%:*}"
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
493
494
495
496
497
498
  		if [ "$tmp" ] ; then
  			CONFIG_NAME="$tmp"
  		fi
  	}
  
  	# Assign board directory to BOARDIR variable
27af930e9   Albert ARIBAUD   Merge and reforma...
499
  	if [ "${vendor}" == "-" ] ; then
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
500
501
502
503
  	    BOARDDIR=${board}
  	else
  	    BOARDDIR=${vendor}/${board}
  	fi
27af930e9   Albert ARIBAUD   Merge and reforma...
504
  	echo "${CONFIG_NAME}:${BOARDDIR}:${BOARD_NAME}"
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
505
506
507
  }
  
  get_target_maintainers() {
27af930e9   Albert ARIBAUD   Merge and reforma...
508
  	local name=`echo $1 | cut -d : -f 3`
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
509

23d6410c2   Masahiro Yamada   MAKEALL: fix awk ...
510
  	local line=`awk '\$7 == "'"$target"'" { print \$0 }' boards.cfg`
27af930e9   Albert ARIBAUD   Merge and reforma...
511
  	if [ -z "${line}" ]; then
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
512
513
514
  		echo ""
  		return ;
  	fi
27af930e9   Albert ARIBAUD   Merge and reforma...
515
516
517
  	local mails=`echo ${line} | cut -d ' ' -f 9- | sed -e 's/[^<]*<//' -e 's/>.*</ /' -e 's/>[^>]*$//'`
  	[ "$mails" == "-" ] && mails=""
  	echo "$mails"
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
518
  }
47104c37d   Allen Martin   MAKEALL: add supp...
519
520
521
522
  get_target_arch() {
  	local target=$1
  
  	# Automatic mode
54d1f5048   Masahiro Yamada   MAKEALL: fix a bu...
523
  	local line=`awk '\$7 == "'"$target"'" { print \$0 }' boards.cfg`
47104c37d   Allen Martin   MAKEALL: add supp...
524
525
526
527
528
529
  
  	if [ -z "${line}" ] ; then echo "" ; return ; fi
  
  	set ${line}
  	echo "$2"
  }
9b96c6b11   Marek Vasut   MAKEALL: Add -m/-...
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
  list_target() {
  	if [ "$PRINT_MAINTS" != 'y' ] ; then
  		echo "$1"
  		return
  	fi
  
  	echo -n "$1:"
  
  	local loc=`get_target_location $1`
  
  	if [ -z "${loc}" ] ; then echo "ERROR" ; return ; fi
  
  	local maintainers_result=`get_target_maintainers ${loc} | tr " " "
  "`
  
  	if [ "$MAINTAINERS_ONLY" != 'y' ] ; then
  
  		local dir=`echo ${loc} | cut -d ":" -f 2`
  		local cfg=`echo ${loc} | cut -d ":" -f 1`
  		local git_result=`git log --format=%aE board/${dir} \
  				include/configs/${cfg}.h | grep "@"`
  		local git_result_recent=`echo ${git_result} | tr " " "
  " | \
  						head -n 3`
  		local git_result_top=`echo ${git_result} | tr " " "
  " | \
  			sort | uniq -c | sort -nr | head -n 3 | \
  			sed "s/^ \+[0-9]\+ \+//"`
  
  		echo -e "$git_result_recent
  $git_result_top
  $maintainers_result" | \
  			sort -u | tr "
  " " " | sed "s/ $//" ;
  	else
  		echo -e "$maintainers_result" | sort -u | tr "
  " " " | \
  						sed "s/ $//" ;
  	fi
  
  	echo ""
  }
f588bb034   Andy Fleming   Allow for paralle...
572
573
574
575
576
577
578
  # Each finished build will have a file called ${donep}${n},
  # where n is the index of the build. Each build
  # we've already noted as finished will have ${skipp}${n}.
  # The code managing the build process will use this information
  # to ensure that only BUILD_NBUILDS builds are in flight at once
  donep="${LOG_DIR}/._done_"
  skipp="${LOG_DIR}/._skip_"
c97d59cbd   Joe Hershberger   MAKEALL: Fix kill...
579
580
581
582
583
584
  build_target_killed() {
  	echo "Aborted $target build."
  	# Remove the logs for this board since it was aborted
  	rm -f ${LOG_DIR}/$target.MAKELOG ${LOG_DIR}/$target.ERR
  	exit
  }
7ebf7443a   wdenk   Initial revision
585
586
  build_target() {
  	target=$1
f588bb034   Andy Fleming   Allow for paralle...
587
  	build_idx=$2
f50bf50d7   Andy Fleming   Improve MAKEALL p...
588
589
590
591
  	if [ "$ONLY_LIST" == 'y' ] ; then
  		list_target ${target}
  		return
  	fi
f588bb034   Andy Fleming   Allow for paralle...
592
593
594
  	if [ $BUILD_MANY == 1 ] ; then
  		output_dir="${OUTPUT_PREFIX}/${target}"
  		mkdir -p "${output_dir}"
c97d59cbd   Joe Hershberger   MAKEALL: Fix kill...
595
  		trap build_target_killed TERM
f588bb034   Andy Fleming   Allow for paralle...
596
597
598
  	else
  		output_dir="${OUTPUT_PREFIX}"
  	fi
47104c37d   Allen Martin   MAKEALL: add supp...
599
  	target_arch=$(get_target_arch ${target})
c17b94ec5   York Sun   MAKEALL: Fix case...
600
  	eval cross_toolchain=\$CROSS_COMPILE_`echo $target_arch | tr '[:lower:]' '[:upper:]'`
47104c37d   Allen Martin   MAKEALL: add supp...
601
  	if [ "${cross_toolchain}" ] ; then
e18fd9405   Masahiro Yamada   MAKEALL: make sur...
602
  	    MAKE="$GNU_MAKE CROSS_COMPILE=${cross_toolchain}"
47104c37d   Allen Martin   MAKEALL: add supp...
603
  	elif [ "${CROSS_COMPILE}" ] ; then
e18fd9405   Masahiro Yamada   MAKEALL: make sur...
604
  	    MAKE="$GNU_MAKE CROSS_COMPILE=${CROSS_COMPILE}"
47104c37d   Allen Martin   MAKEALL: add supp...
605
  	else
e18fd9405   Masahiro Yamada   MAKEALL: make sur...
606
  	    MAKE=$GNU_MAKE
47104c37d   Allen Martin   MAKEALL: add supp...
607
  	fi
9e4140329   Masahiro Yamada   kbuild: change ou...
608
609
610
  	if [  "${output_dir}" != "." ] ; then
  		MAKE="${MAKE} O=${output_dir}"
  	fi
fd18a89e7   Roger Meier   Makefile: remove ...
611
  	${MAKE} mrproper >/dev/null
bb6da87d7   Masahiro Yamada   MAKEALL: adjust f...
612
613
614
  
  	echo "Building ${target} board..."
  	${MAKE} -s ${target}_defconfig >/dev/null
f93286397   Marian Balakowicz   Add support for a...
615

33f336d52   Kim Phillips   MAKEALL: add a -C...
616
  	${MAKE} ${JOBS} ${CHECK} all \
f588bb034   Andy Fleming   Allow for paralle...
617
  		>${LOG_DIR}/$target.MAKELOG 2> ${LOG_DIR}/$target.ERR
f2352877c   Peter Tyser   MAKEALL: Fix retu...
618
619
620
621
622
  
  	# Check for 'make' errors
  	if [ ${PIPESTATUS[0]} -ne 0 ] ; then
  		RC=1
  	fi
f588bb034   Andy Fleming   Allow for paralle...
623
  	if [ $BUILD_MANY == 1 ] ; then
c97d59cbd   Joe Hershberger   MAKEALL: Fix kill...
624
  		trap - TERM
7390643f7   Masahiro Yamada   Makefile: remove ...
625
  		${MAKE} -s clean
f588bb034   Andy Fleming   Allow for paralle...
626
627
  
  		if [ -s ${LOG_DIR}/${target}.ERR ] ; then
b86a475c1   Joe Hershberger   MAKEALL: Report b...
628
  			cp ${LOG_DIR}/${target}.ERR ${OUTPUT_PREFIX}/ERR/${target}
f588bb034   Andy Fleming   Allow for paralle...
629
630
631
  		else
  			rm ${LOG_DIR}/${target}.ERR
  		fi
40a28f088   Peter Tyser   MAKEALL: Add summ...
632
  	else
f588bb034   Andy Fleming   Allow for paralle...
633
  		if [ -s ${LOG_DIR}/${target}.ERR ] ; then
b86a475c1   Joe Hershberger   MAKEALL: Report b...
634
635
636
637
638
639
640
  			if grep -iw error ${LOG_DIR}/${target}.ERR ; then
  				: $(( ERR_CNT += 1 ))
  				ERR_LIST="${ERR_LIST} $target"
  			else
  				: $(( WRN_CNT += 1 ))
  				WRN_LIST="${WRN_LIST} $target"
  			fi
f588bb034   Andy Fleming   Allow for paralle...
641
642
643
  		else
  			rm ${LOG_DIR}/${target}.ERR
  		fi
40a28f088   Peter Tyser   MAKEALL: Add summ...
644
  	fi
f588bb034   Andy Fleming   Allow for paralle...
645
646
647
  	OBJS=${output_dir}/u-boot
  	if [ -e ${output_dir}/spl/u-boot-spl ]; then
  		OBJS="${OBJS} ${output_dir}/spl/u-boot-spl"
0c1856960   Scott Wood   MAKEALL: display ...
648
649
650
  	fi
  
  	${CROSS_COMPILE}size ${OBJS} | tee -a ${LOG_DIR}/$target.MAKELOG
f588bb034   Andy Fleming   Allow for paralle...
651
652
  
  	[ -e "${LOG_DIR}/${target}.ERR" ] && cat "${LOG_DIR}/${target}.ERR"
f588bb034   Andy Fleming   Allow for paralle...
653
  	touch "${donep}${build_idx}"
7ebf7443a   wdenk   Initial revision
654
  }
f588bb034   Andy Fleming   Allow for paralle...
655
656
657
  
  manage_builds() {
  	search_idx=${OLDEST_IDX}
f50bf50d7   Andy Fleming   Improve MAKEALL p...
658
  	if [ "$ONLY_LIST" == 'y' ] ; then return ; fi
f588bb034   Andy Fleming   Allow for paralle...
659
660
  	while true; do
  		if [ -e "${donep}${search_idx}" ] ; then
f588bb034   Andy Fleming   Allow for paralle...
661
662
663
664
665
666
667
668
669
670
671
  			: $(( CURRENT_CNT-- ))
  			[ ${OLDEST_IDX} -eq ${search_idx} ] &&
  				: $(( OLDEST_IDX++ ))
  
  			# Only want to count it once
  			rm -f "${donep}${search_idx}"
  			touch "${skipp}${search_idx}"
  		elif [ -e "${skipp}${search_idx}" ] ; then
  			[ ${OLDEST_IDX} -eq ${search_idx} ] &&
  				: $(( OLDEST_IDX++ ))
  		fi
f588bb034   Andy Fleming   Allow for paralle...
672
673
  		: $(( search_idx++ ))
  		if [ ${search_idx} -gt ${TOTAL_CNT} ] ; then
f588bb034   Andy Fleming   Allow for paralle...
674
675
676
677
678
679
680
681
682
  			if [ ${CURRENT_CNT} -ge ${BUILD_NBUILDS} ] ; then
  				search_idx=${OLDEST_IDX}
  				sleep 1
  			else
  				break
  			fi
  		fi
  	done
  }
9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
683
684
685
686
687
688
689
690
691
692
693
694
  build_targets() {
  	for t in "$@" ; do
  		# If a LIST_xxx var exists, use it.  But avoid variable
  		# expansion in the eval when a board name contains certain
  		# characters that the shell interprets.
  		case ${t} in
  			*[-+=]*) list= ;;
  			*)       list=$(eval echo '${LIST_'$t'}') ;;
  		esac
  		if [ -n "${list}" ] ; then
  			build_targets ${list}
  		else
f588bb034   Andy Fleming   Allow for paralle...
695
696
697
698
  			: $((TOTAL_CNT += 1))
  			: $((CURRENT_CNT += 1))
  			rm -f "${donep}${TOTAL_CNT}"
  			rm -f "${skipp}${TOTAL_CNT}"
085102047   Joe Hershberger   MAKEALL: Add opti...
699
700
701
702
703
704
  			if [ "$CONTINUE" = 'y' -a -e ${LOG_DIR}/$t.MAKELOG ] ; then
  				: $((SKIP_CNT += 1))
  				touch "${donep}${TOTAL_CNT}"
  			elif [ "$REBUILD_ERRORS" = 'y' -a ! -e ${LOG_DIR}/$t.ERR ] ; then
  				: $((SKIP_CNT += 1))
  				touch "${donep}${TOTAL_CNT}"
b594bd6ab   Joe Hershberger   MAKEALL: Fix erro...
705
  			else
085102047   Joe Hershberger   MAKEALL: Add opti...
706
707
708
709
710
711
712
  				if [ $BUILD_MANY == 1 ] ; then
  					build_target ${t} ${TOTAL_CNT} &
  				else
  					CUR_TGT="${t}"
  					build_target ${t} ${TOTAL_CNT}
  					CUR_TGT=''
  				fi
b594bd6ab   Joe Hershberger   MAKEALL: Fix erro...
713
  			fi
f588bb034   Andy Fleming   Allow for paralle...
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
  		fi
  
  		# We maintain a running count of all the builds we have done.
  		# Each finished build will have a file called ${donep}${n},
  		# where n is the index of the build. Each build
  		# we've already noted as finished will have ${skipp}${n}.
  		# We track the current index via TOTAL_CNT, and the oldest
  		# index. When we exceed the maximum number of parallel builds,
  		# We look from oldest to current for builds that have completed,
  		# and update the current count and oldest index as appropriate.
  		# If we've gone through the entire list, wait a second, and
  		# reprocess the entire list until we find a build that has
  		# completed
  		if [ ${CURRENT_CNT} -ge ${BUILD_NBUILDS} ] ; then
  			manage_builds
9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
729
730
731
  		fi
  	done
  }
7ebf7443a   wdenk   Initial revision
732
733
  
  #-----------------------------------------------------------------------
f50bf50d7   Andy Fleming   Improve MAKEALL p...
734
  kill_children() {
6bdd9f896   Andreas Bießmann   MAKEALL: fix kill...
735
736
737
738
739
740
741
742
743
744
745
746
747
748
  	local OS=$(uname -s)
  	local children=""
  	case "${OS}" in
  		"Darwin")
  			# Mac OS X is known to have BSD style ps
  			local pgid=$(ps -p $$ -o pgid | sed -e "/PGID/d")
  			children=$(ps -g $pgid -o pid | sed -e "/PID\|$$\|$pgid/d")
  			;;
  		*)
  			# everything else tries the GNU style
  			local pgid=$(ps -p $$ --no-headers -o "%r" | tr -d ' ')
  			children=$(pgrep -g $pgid | sed -e "/$$\|$pgid/d")
  			;;
  	esac
c97d59cbd   Joe Hershberger   MAKEALL: Fix kill...
749
750
751
  
  	kill $children 2> /dev/null
  	wait $children 2> /dev/null
f50bf50d7   Andy Fleming   Improve MAKEALL p...
752
753
754
  
  	exit
  }
40a28f088   Peter Tyser   MAKEALL: Add summ...
755
  print_stats() {
7f79c6f2f   Marek Vasut   MAKEALL: Add -l o...
756
  	if [ "$ONLY_LIST" == 'y' ] ; then return ; fi
f588bb034   Andy Fleming   Allow for paralle...
757

c97d59cbd   Joe Hershberger   MAKEALL: Fix kill...
758
759
  	# Only count boards that completed
  	: $((TOTAL_CNT = `find ${skipp}* 2> /dev/null | wc -l`))
f588bb034   Andy Fleming   Allow for paralle...
760
761
762
  	rm -f ${donep}* ${skipp}*
  
  	if [ $BUILD_MANY == 1 ] && [ -e "${OUTPUT_PREFIX}/ERR" ] ; then
033220e7a   Andy Fleming   MAKEALL: Allow em...
763
  		ERR_LIST=`grep -riwl error ${OUTPUT_PREFIX}/ERR/`
b86a475c1   Joe Hershberger   MAKEALL: Report b...
764
765
  		ERR_LIST=`for f in $ERR_LIST ; do echo -n " $(basename $f)" ; done`
  		ERR_CNT=`echo $ERR_LIST | wc -w | awk '{print $1}'`
033220e7a   Andy Fleming   MAKEALL: Allow em...
766
  		WRN_LIST=`grep -riwL error ${OUTPUT_PREFIX}/ERR/`
b86a475c1   Joe Hershberger   MAKEALL: Report b...
767
768
  		WRN_LIST=`for f in $WRN_LIST ; do echo -n " $(basename $f)" ; done`
  		WRN_CNT=`echo $WRN_LIST | wc -w | awk '{print $1}'`
c97d59cbd   Joe Hershberger   MAKEALL: Fix kill...
769
770
771
  	else
  		# Remove the logs for any board that was interrupted
  		rm -f ${LOG_DIR}/${CUR_TGT}.MAKELOG ${LOG_DIR}/${CUR_TGT}.ERR
f588bb034   Andy Fleming   Allow for paralle...
772
  	fi
085102047   Joe Hershberger   MAKEALL: Add opti...
773
  	: $((TOTAL_CNT -= ${SKIP_CNT}))
40a28f088   Peter Tyser   MAKEALL: Add summ...
774
775
  	echo ""
  	echo "--------------------- SUMMARY ----------------------------"
085102047   Joe Hershberger   MAKEALL: Add opti...
776
777
778
  	if [ "$CONTINUE" = 'y' -o "$REBUILD_ERRORS" = 'y' ] ; then
  		echo "Boards skipped: ${SKIP_CNT}"
  	fi
40a28f088   Peter Tyser   MAKEALL: Add summ...
779
780
  	echo "Boards compiled: ${TOTAL_CNT}"
  	if [ ${ERR_CNT} -gt 0 ] ; then
b86a475c1   Joe Hershberger   MAKEALL: Report b...
781
782
783
784
  		echo "Boards with errors: ${ERR_CNT} (${ERR_LIST} )"
  	fi
  	if [ ${WRN_CNT} -gt 0 ] ; then
  		echo "Boards with warnings but no errors: ${WRN_CNT} (${WRN_LIST} )"
40a28f088   Peter Tyser   MAKEALL: Add summ...
785
786
  	fi
  	echo "----------------------------------------------------------"
f2352877c   Peter Tyser   MAKEALL: Fix retu...
787

f50bf50d7   Andy Fleming   Improve MAKEALL p...
788
  	if [ $BUILD_MANY == 1 ] ; then
c97d59cbd   Joe Hershberger   MAKEALL: Fix kill...
789
  		kill_children
f50bf50d7   Andy Fleming   Improve MAKEALL p...
790
  	fi
f2352877c   Peter Tyser   MAKEALL: Fix retu...
791
  	exit $RC
40a28f088   Peter Tyser   MAKEALL: Add summ...
792
  }
7ebf7443a   wdenk   Initial revision
793

40a28f088   Peter Tyser   MAKEALL: Add summ...
794
  #-----------------------------------------------------------------------
9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
795

0777eafb3   Wolfgang Denk   MAKEALL: allow ad...
796
797
798
  # Build target groups selected by options, plus any command line args
  set -- ${SELECTED} "$@"
  # run PowerPC by default
9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
799
  [ $# = 0 ] && set -- powerpc
9ec49f8f8   Mike Frysinger   MAKEALL: cut down...
800
  build_targets "$@"
f588bb034   Andy Fleming   Allow for paralle...
801
  wait