diff options
| -rwxr-xr-x | MAKEALL | 100 | 
1 files changed, 49 insertions, 51 deletions
| @@ -1,58 +1,54 @@  #!/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 @@ -63,7 +59,7 @@ LONG_OPTS="arch:,cpu:,vendor:,soc:"  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" @@ -108,6 +104,8 @@ while true ; do  		fi  		SELECTED='y'  		shift 2 ;; +	-h|--help) +		usage ;;  	--)  		shift ; break ;;  	*) |