summaryrefslogtreecommitdiffstats
path: root/u-boot/MAKEALL
diff options
context:
space:
mode:
authorH. Nikolaus Schaller <hns@goldelico.com>2012-03-26 20:55:28 +0200
committerH. Nikolaus Schaller <hns@goldelico.com>2012-03-26 20:55:28 +0200
commit92988a21ad4c4c9504295ccb580c9f806134471b (patch)
tree5effc9f14170112450de05c67dafbe8d5034d595 /u-boot/MAKEALL
parentca2b506783b676c95762c54ea24dcfdaae1947c9 (diff)
downloadbootable_bootloader_goldelico_gta04-92988a21ad4c4c9504295ccb580c9f806134471b.zip
bootable_bootloader_goldelico_gta04-92988a21ad4c4c9504295ccb580c9f806134471b.tar.gz
bootable_bootloader_goldelico_gta04-92988a21ad4c4c9504295ccb580c9f806134471b.tar.bz2
added boot script files to repository
Diffstat (limited to 'u-boot/MAKEALL')
-rwxr-xr-xu-boot/MAKEALL680
1 files changed, 680 insertions, 0 deletions
diff --git a/u-boot/MAKEALL b/u-boot/MAKEALL
new file mode 100755
index 0000000..a732e6a
--- /dev/null
+++ b/u-boot/MAKEALL
@@ -0,0 +1,680 @@
+#!/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:"
+
+# Option processing based on util-linux-2.13/getopt-parse.bash
+
+# Note that we use `"$@"' to let each command-line parameter expand to a
+# 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' -- "$@"`
+
+if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
+
+# Note the quotes around `$TEMP': they are essential!
+eval set -- "$TEMP"
+
+SELECTED=''
+
+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
+ opt_c="${opt_c%)} || \$3 == \"$2\")"
+ else
+ opt_c="(\$3 == \"$2\")"
+ fi
+ SELECTED='y'
+ shift 2 ;;
+ -s|--soc)
+ # echo "Option SoC: argument \`$2'"
+ if [ "$opt_s" ] ; then
+ opt_s="${opt_s%)} || \$6 == \"$2\")"
+ else
+ opt_s="(\$6 == \"$2\")"
+ 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 ;;
+ --)
+ shift ; break ;;
+ *)
+ echo "Internal error!" >&2 ; exit 1 ;;
+ esac
+done
+# echo "Remaining arguments:"
+# for arg do echo '--> '"\`$arg'" ; done
+
+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"
+
+if [ "$SELECTED" ] ; then
+ SELECTED=$(awk '('"$FILTER"') { print $1 }' boards.cfg)
+
+ # Make sure some boards from boards.cfg are actually found
+ if [ -z "$SELECTED" ] ; then
+ echo "Error: No boards selected, invalid arguments"
+ exit 1
+ fi
+fi
+
+#########################################################################
+
+# Print statistics when we exit
+trap exit 1 2 3 15
+trap print_stats 0
+
+# Determine number of CPU cores if no default was set
+: ${BUILD_NCPUS:="`getconf _NPROCESSORS_ONLN`"}
+
+if [ "$BUILD_NCPUS" -gt 1 ]
+then
+ JOBS="-j $((BUILD_NCPUS + 1))"
+else
+ JOBS=""
+fi
+
+
+if [ "${CROSS_COMPILE}" ] ; then
+ MAKE="make CROSS_COMPILE=${CROSS_COMPILE}"
+else
+ MAKE=make
+fi
+
+if [ "${MAKEALL_LOGDIR}" ] ; then
+ LOG_DIR=${MAKEALL_LOGDIR}
+else
+ LOG_DIR="LOG"
+fi
+
+if [ ! "${BUILD_DIR}" ] ; then
+ BUILD_DIR="."
+fi
+
+[ -d ${LOG_DIR} ] || mkdir ${LOG_DIR} || exit 1
+
+LIST=""
+
+# Keep track of the number of builds and errors
+ERR_CNT=0
+ERR_LIST=""
+TOTAL_CNT=0
+RC=0
+
+# Helper funcs for parsing boards.cfg
+boards_by_field()
+{
+ awk \
+ -v field="$1" \
+ -v select="$2" \
+ '($1 !~ /^#/ && $field == select) { print $1 }' \
+ boards.cfg
+}
+boards_by_arch() { boards_by_field 2 "$@" ; }
+boards_by_cpu() { boards_by_field 3 "$@" ; }
+boards_by_soc() { boards_by_field 6 "$@" ; }
+
+#########################################################################
+## MPC5xx Systems
+#########################################################################
+
+LIST_5xx="$(boards_by_cpu mpc5xx)"
+
+#########################################################################
+## MPC5xxx Systems
+#########################################################################
+
+LIST_5xxx="$(boards_by_cpu mpc5xxx)"
+
+#########################################################################
+## MPC512x Systems
+#########################################################################
+
+LIST_512x="$(boards_by_cpu mpc512x)"
+
+#########################################################################
+## MPC8xx Systems
+#########################################################################
+
+LIST_8xx="$(boards_by_cpu mpc8xx)"
+
+#########################################################################
+## PPC4xx Systems
+#########################################################################
+
+LIST_4xx="$(boards_by_cpu ppc4xx)"
+
+#########################################################################
+## MPC8220 Systems
+#########################################################################
+
+LIST_8220="$(boards_by_cpu mpc8220)"
+
+#########################################################################
+## MPC824x Systems
+#########################################################################
+
+LIST_824x="$(boards_by_cpu mpc824x)"
+
+#########################################################################
+## MPC8260 Systems (includes 8250, 8255 etc.)
+#########################################################################
+
+LIST_8260="$(boards_by_cpu mpc8260)"
+
+#########################################################################
+## MPC83xx Systems (includes 8349, etc.)
+#########################################################################
+
+LIST_83xx="$(boards_by_cpu mpc83xx)"
+
+#########################################################################
+## MPC85xx Systems (includes 8540, 8560 etc.)
+#########################################################################
+
+LIST_85xx="$(boards_by_cpu mpc85xx)"
+
+#########################################################################
+## MPC86xx Systems
+#########################################################################
+
+LIST_86xx="$(boards_by_cpu mpc86xx)"
+
+#########################################################################
+## 74xx/7xx Systems
+#########################################################################
+
+LIST_74xx_7xx="$(boards_by_cpu 74xx_7xx)"
+
+#########################################################################
+## PowerPC groups
+#########################################################################
+
+LIST_TSEC=" \
+ ${LIST_83xx} \
+ ${LIST_85xx} \
+ ${LIST_86xx} \
+"
+
+LIST_powerpc=" \
+ ${LIST_5xx} \
+ ${LIST_512x} \
+ ${LIST_5xxx} \
+ ${LIST_8xx} \
+ ${LIST_8220} \
+ ${LIST_824x} \
+ ${LIST_8260} \
+ ${LIST_83xx} \
+ ${LIST_85xx} \
+ ${LIST_86xx} \
+ ${LIST_4xx} \
+ ${LIST_74xx_7xx}\
+"
+
+# Alias "ppc" -> "powerpc" to not break compatibility with older scripts
+# still using "ppc" instead of "powerpc"
+LIST_ppc=" \
+ ${LIST_powerpc} \
+"
+
+#########################################################################
+## StrongARM Systems
+#########################################################################
+
+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 \
+ magnesium \
+ mv88f6281gtw_ge \
+ mx1ads \
+ mx1fs2 \
+ netstar \
+ nhk8815 \
+ nhk8815_onenand \
+ omap1510inn \
+ omap1610h2 \
+ omap1610inn \
+ omap5912osk \
+ omap730p2 \
+ openrd_base \
+ rd6281a \
+ sbc2410x \
+ scb9328 \
+ sheevaplug \
+ smdk2400 \
+ smdk2410 \
+ spear300 \
+ spear310 \
+ spear320 \
+ spear600 \
+ suen3 \
+ trab \
+ VCMA9 \
+ versatile \
+ versatileab \
+ versatilepb \
+ voiceblue \
+ davinci_dvevm \
+ davinci_schmoogie \
+ davinci_sffsdr \
+ davinci_sonata \
+ davinci_dm355evm \
+ davinci_dm355leopard \
+ davinci_dm365evm \
+ davinci_dm6467evm \
+"
+
+#########################################################################
+## ARM10 Systems
+#########################################################################
+LIST_ARM10=" \
+ integratorcp \
+ cp1026 \
+"
+
+#########################################################################
+## ARM11 Systems
+#########################################################################
+LIST_ARM11=" \
+ cp1136 \
+ omap2420h4 \
+ apollon \
+ imx31_litekit \
+ imx31_phycore \
+ imx31_phycore_eet \
+ mx31ads \
+ mx31pdk \
+ mx31pdk_nand \
+ qong \
+ smdk6400 \
+ tnetv107x_evm \
+"
+
+#########################################################################
+## ARMV7 Systems
+#########################################################################
+LIST_ARMV7=" \
+ am3517_evm \
+ ca9x4_ct_vxp \
+ devkit8000 \
+ igep0020 \
+ igep0030 \
+ mx51evk \
+ omap3_beagle \
+ omap3_overo \
+ omap3_evm \
+ omap3_pandora \
+ omap3_sdp3430 \
+ omap3_zoom1 \
+ omap3_zoom2 \
+ omap4_panda \
+ omap4_sdp4430 \
+ s5p_goni \
+ smdkc100 \
+"
+
+#########################################################################
+## 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 \
+"
+
+#########################################################################
+## Xscale Systems
+#########################################################################
+
+LIST_pxa="$(boards_by_cpu pxa)"
+
+LIST_ixp="$(boards_by_cpu ixp)
+ pdnb3 \
+ scpu \
+"
+
+#########################################################################
+## ARM groups
+#########################################################################
+
+LIST_arm=" \
+ ${LIST_SA} \
+ ${LIST_ARM7} \
+ ${LIST_ARM9} \
+ ${LIST_ARM10} \
+ ${LIST_ARM11} \
+ ${LIST_ARMV7} \
+ ${LIST_at91} \
+ ${LIST_pxa} \
+ ${LIST_ixp} \
+"
+
+#########################################################################
+## MIPS Systems (default = big endian)
+#########################################################################
+
+LIST_mips4kc=" \
+ incaip \
+ qemu_mips \
+ vct_platinum \
+ vct_platinum_small \
+ vct_platinum_onenand \
+ vct_platinum_onenand_small \
+ vct_platinumavc \
+ vct_platinumavc_small \
+ vct_platinumavc_onenand \
+ vct_platinumavc_onenand_small \
+ vct_premium \
+ vct_premium_small \
+ vct_premium_onenand \
+ vct_premium_onenand_small \
+"
+
+LIST_mips5kc=" \
+ purple \
+"
+
+LIST_au1xx0=" \
+ dbau1000 \
+ dbau1100 \
+ dbau1500 \
+ dbau1550 \
+ dbau1550_el \
+ gth2 \
+"
+
+LIST_mips=" \
+ ${LIST_mips4kc} \
+ ${LIST_mips5kc} \
+ ${LIST_au1xx0} \
+"
+
+#########################################################################
+## MIPS Systems (little endian)
+#########################################################################
+
+LIST_mips4kc_el=""
+
+LIST_mips5kc_el=""
+
+LIST_au1xx0_el=" \
+ dbau1550_el \
+ pb1000 \
+"
+
+LIST_mips_el=" \
+ ${LIST_mips4kc_el} \
+ ${LIST_mips5kc_el} \
+ ${LIST_au1xx0_el} \
+"
+
+#########################################################################
+## i386 Systems
+#########################################################################
+
+LIST_x86="$(boards_by_arch i386)"
+
+#########################################################################
+## Nios-II Systems
+#########################################################################
+
+LIST_nios2="$(boards_by_arch nios2)
+ nios2-generic \
+"
+
+#########################################################################
+## MicroBlaze Systems
+#########################################################################
+
+LIST_microblaze="$(boards_by_arch microblaze)"
+
+#########################################################################
+## ColdFire Systems
+#########################################################################
+
+LIST_coldfire="$(boards_by_arch m68k)
+ astro_mcf5373l \
+ cobra5272 \
+ EB+MCF-EV123 \
+ EB+MCF-EV123_internal \
+ M52277EVB \
+ M5235EVB \
+ M5329AFEE \
+ M5373EVB \
+ M54451EVB \
+ M54455EVB \
+ M5475AFE \
+ M5485AFE \
+"
+
+#########################################################################
+## AVR32 Systems
+#########################################################################
+
+LIST_avr32="$(boards_by_arch avr32)"
+
+#########################################################################
+## Blackfin Systems
+#########################################################################
+
+LIST_blackfin="$(boards_by_arch blackfin)"
+
+#########################################################################
+## SH Systems
+#########################################################################
+
+LIST_sh2="$(boards_by_cpu sh2)"
+LIST_sh3="$(boards_by_cpu sh3)"
+LIST_sh4="$(boards_by_cpu sh4)"
+
+LIST_sh="$(boards_by_arch sh)"
+
+#########################################################################
+## SPARC Systems
+#########################################################################
+
+LIST_sparc="$(boards_by_arch sparc)"
+
+#-----------------------------------------------------------------------
+
+build_target() {
+ target=$1
+
+ ${MAKE} distclean >/dev/null
+ ${MAKE} -s ${target}_config
+
+ ${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
+ | tee ${LOG_DIR}/$target.ERR
+
+ # Check for 'make' errors
+ if [ ${PIPESTATUS[0]} -ne 0 ] ; then
+ RC=1
+ fi
+
+ if [ -s ${LOG_DIR}/$target.ERR ] ; then
+ ERR_CNT=$((ERR_CNT + 1))
+ ERR_LIST="${ERR_LIST} $target"
+ else
+ rm ${LOG_DIR}/$target.ERR
+ fi
+
+ TOTAL_CNT=$((TOTAL_CNT + 1))
+
+ ${CROSS_COMPILE}size ${BUILD_DIR}/u-boot \
+ | tee -a ${LOG_DIR}/$target.MAKELOG
+}
+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
+ build_target ${t}
+ fi
+ done
+}
+
+#-----------------------------------------------------------------------
+
+print_stats() {
+ echo ""
+ echo "--------------------- SUMMARY ----------------------------"
+ echo "Boards compiled: ${TOTAL_CNT}"
+ if [ ${ERR_CNT} -gt 0 ] ; then
+ echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )"
+ fi
+ echo "----------------------------------------------------------"
+
+ exit $RC
+}
+
+#-----------------------------------------------------------------------
+
+# Build target groups selected by options, plus any command line args
+set -- ${SELECTED} "$@"
+# run PowerPC by default
+[ $# = 0 ] && set -- powerpc
+build_targets "$@"