#!/bin/bash
-
# Tool mainly for U-Boot Quality Assurance: build one or more board
# configurations with minimal verbosity, showing only warnings and
# errors.
-#
-# There are several ways to select which boards to build.
-#
-# Traditionally, architecture names (like "powerpc"), CPU family names
-# (like "mpc83xx") or board names can be specified on the command
-# line; without any arguments, MAKEALL defaults to building all Power
-# Architecture systems (i. e. same as for "MAKEALL powerpc").
-#
-# With the introduction of the board.cfg file, it has become possible
-# to provide additional selections. We use standard command line
-# options for this:
-#
-# -a or --arch : Select architecture
-# -c or --cpu : Select CPU family
-# -s or --soc : Select SoC type
-# -v or --vendor: Select board vendor
-#
-# 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.
-#
-# Examples:
-#
-# - build all Power Architecture boards:
-#
-# MAKEALL -a powerpc
-# or
-# MAKEALL --arch powerpc
-# or
-# 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
-#
-#########################################################################
-
-SHORT_OPTS="a:c:v:s:"
-LONG_OPTS="arch:,cpu:,vendor:,soc:"
+
+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
+ -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: "")
+ MAKEALL_LOGDIR output all logs to here (default: ./LOG/)
+ BUILD_DIR output build directory (default: ./)
+
+ 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}
+}
+
+SHORT_OPTS="ha:c:v:s:"
+LONG_OPTS="help,arch:,cpu:,vendor:,soc:"
# Option processing based on util-linux-2.13/getopt-parse.bash
TEMP=`getopt -o ${SHORT_OPTS} --long ${LONG_OPTS} \
-n 'MAKEALL' -- "$@"`
-if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
+[ $? != 0 ] && usage 1
# Note the quotes around `$TEMP': they are essential!
eval set -- "$TEMP"
fi
SELECTED='y'
shift 2 ;;
+ -h|--help)
+ usage ;;
--)
shift ; break ;;
*)
LIST_SA="$(boards_by_cpu sa1100)"
#########################################################################
-## ARM7 Systems
-#########################################################################
-
-LIST_ARM7=" \
- ap7 \
- ap720t \
- armadillo \
- B2 \
- ep7312 \
- evb4510 \
- impa7 \
- integratorap \
- lpc2292sodimm \
- modnet50 \
- SMN42 \
-"
-
-#########################################################################
## ARM9 Systems
#########################################################################
LIST_ARM9=" \
a320evb \
- ap920t \
- ap922_XA10 \
- ap926ejs \
- ap946es \
- ap966 \
aspenite \
- cp920t \
- cp922_XA10 \
- cp926ejs \
- cp946es \
- cp966 \
da830evm \
da850evm \
- edb9301 \
- edb9302 \
- edb9302a \
- edb9307 \
- edb9307a \
- edb9312 \
- edb9315 \
- edb9315a \
edminiv2 \
guruplug \
imx27lite \
jadecpu \
- lpd7a400 \
+ km_kirkwood \
magnesium \
mv88f6281gtw_ge \
mx1ads \
- mx1fs2 \
- netstar \
nhk8815 \
nhk8815_onenand \
omap1510inn \
openrd_base \
openrd_client \
openrd_ultimate \
+ portl2 \
rd6281a \
- sbc2410x \
scb9328 \
sheevaplug \
- smdk2400 \
smdk2410 \
spear300 \
spear310 \
spear320 \
spear600 \
- suen3 \
- trab \
VCMA9 \
versatile \
versatileab \
versatilepb \
- voiceblue \
davinci_dvevm \
davinci_schmoogie \
davinci_sffsdr \
"
#########################################################################
-## ARM10 Systems
-#########################################################################
-LIST_ARM10=" \
- integratorcp \
- cp1026 \
-"
-
-#########################################################################
## ARM11 Systems
#########################################################################
LIST_ARM11=" \
- cp1136 \
omap2420h4 \
apollon \
imx31_litekit \
#########################################################################
## ARMV7 Systems
#########################################################################
-LIST_ARMV7=" \
- am3517_crane \
- am3517_evm \
- ca9x4_ct_vxp \
- devkit8000 \
- dig297 \
- igep0020 \
- igep0030 \
- mx51evk \
- omap3_beagle \
- omap3_overo \
- omap3_evm \
- omap3_pandora \
- omap3_sdp3430 \
- omap3_zoom1 \
- omap3_zoom2 \
- omap4_panda \
- omap4_sdp4430 \
- s5p_goni \
- smdkc100 \
-"
+
+LIST_ARMV7="$(boards_by_cpu armv7)"
#########################################################################
## AT91 Systems
#########################################################################
-LIST_at91="$(boards_by_soc at91)\
- $(boards_by_soc at91rm9200)\
- at91sam9260ek \
- at91sam9261ek \
- at91sam9263ek \
- at91sam9g10ek \
- at91sam9g20ek \
- at91sam9m10g45ek \
- at91sam9rlek \
- CPUAT91 \
- CPU9260 \
- CPU9G20 \
- pm9g45 \
- SBC35_A9G20 \
- TNY_A9260 \
- TNY_A9G20 \
-"
+LIST_at91="$(boards_by_soc at91)"
#########################################################################
## Xscale Systems
LIST_arm=" \
${LIST_SA} \
- ${LIST_ARM7} \
${LIST_ARM9} \
${LIST_ARM10} \
${LIST_ARM11} \
## Nios-II Systems
#########################################################################
-LIST_nios2="$(boards_by_arch nios2)
- nios2-generic \
-"
+LIST_nios2="$(boards_by_arch nios2)"
#########################################################################
## MicroBlaze Systems