123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788 |
- #!/bin/bash
- # 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 "$@" ; }
- #########################################################################
- ## MPC5xx Systems
- #########################################################################
- LIST_5xx="$(boards_by_cpu mpc5xx)"
- #########################################################################
- ## MPC5xxx Systems
- #########################################################################
- LIST_5xxx="$(boards_by_cpu mpc5xxx)
- digsy_mtc \
- EVAL5200 \
- fo300 \
- galaxy5200 \
- icecube_5200 \
- lite5200b \
- mcc200 \
- MVBC_P \
- MVSMR \
- pcm030 \
- PM520 \
- TB5200 \
- Total5200 \
- Total5200_Rev2 \
- TQM5200 \
- TQM5200_B \
- TQM5200S \
- "
- #########################################################################
- ## MPC512x Systems
- #########################################################################
- LIST_512x="$(boards_by_cpu mpc512x)
- mpc5121ads \
- "
- #########################################################################
- ## MPC8xx Systems
- #########################################################################
- LIST_8xx="$(boards_by_cpu mpc8xx)
- Adder87x \
- AdderII \
- ADS860 \
- FADS823 \
- FADS850SAR \
- FADS860T \
- FPS850L \
- GEN860T \
- GEN860T_SC \
- ICU862_100MHz \
- IVML24 \
- IVML24_128 \
- IVML24_256 \
- IVMS8 \
- IVMS8_128 \
- IVMS8_256 \
- MBX \
- MBX860T \
- MPC86xADS \
- MPC885ADS \
- NETPHONE \
- NETTA \
- NETTA2 \
- NETTA_ISDN \
- NETVIA \
- NETVIA_V2 \
- RPXlite_DW \
- SPD823TS \
- SXNI855T \
- TK885D \
- TQM823L \
- TQM823L_LCD \
- TQM850L \
- TQM855L \
- TQM860L \
- TQM885D \
- v37 \
- "
- #########################################################################
- ## PPC4xx Systems
- #########################################################################
- LIST_4xx="$(boards_by_cpu ppc4xx)
- acadia_nand \
- arches \
- bamboo_nand \
- canyonlands \
- canyonlands_nand \
- CPCI405 \
- CPCI4052 \
- CPCI405AB \
- CPCI405DT \
- devconcenter \
- fx12mm \
- glacier \
- haleakala \
- haleakala_nand \
- hcu4 \
- hcu5 \
- intip \
- kilauea \
- kilauea_nand \
- mcu25 \
- MIP405T \
- ml507 \
- ml507_flash \
- OCRTC \
- ORSG \
- PPChameleonEVB \
- rainier \
- sequoia \
- sequoia_nand \
- v5fx30teval \
- v5fx30teval_flash \
- W7OLMC \
- W7OLMG \
- walnut \
- xilinx-ppc440-generic \
- xilinx-ppc440-generic_flash \
- yellowstone \
- yosemite \
- "
- #########################################################################
- ## MPC8220 Systems
- #########################################################################
- LIST_8220="$(boards_by_cpu mpc8220)"
- #########################################################################
- ## MPC824x Systems
- #########################################################################
- LIST_824x="$(boards_by_cpu mpc824x)
- CPC45 \
- eXalion \
- IDS8247 \
- linkstation_HGLAN \
- Sandpoint8240 \
- Sandpoint8245 \
- "
- #########################################################################
- ## MPC8260 Systems (includes 8250, 8255 etc.)
- #########################################################################
- LIST_8260="$(boards_by_cpu mpc8260)
- cogent_mpc8260 \
- CPU86 \
- CPU87 \
- ep8248 \
- ISPAN \
- MPC8260ADS \
- MPC8272ADS \
- PM826 \
- PM828 \
- Rattler8248 \
- TQM8260_AC \
- TQM8260_AD \
- TQM8260_AE \
- "
- #########################################################################
- ## MPC83xx Systems (includes 8349, etc.)
- #########################################################################
- LIST_83xx="$(boards_by_cpu mpc83xx)
- caddy2 \
- MPC8313ERDB_33 \
- MPC8313ERDB_NAND_66 \
- MPC8315ERDB \
- MPC8315ERDB_NAND \
- MPC832XEMDS \
- MPC832XEMDS_ATM \
- MPC8349ITX \
- MPC8349ITXGP \
- MPC8360EMDS \
- MPC8360EMDS_ATM \
- MPC8360ERDK_33 \
- MPC8360ERDK_66 \
- MPC837XEMDS \
- sbc8349 \
- SIMPC8313_LP \
- vme8349 \
- "
- #########################################################################
- ## MPC85xx Systems (includes 8540, 8560 etc.)
- #########################################################################
- LIST_85xx="$(boards_by_cpu mpc85xx)
- MPC8536DS \
- MPC8536DS_NAND \
- MPC8536DS_SDCARD \
- MPC8536DS_SPIFLASH \
- MPC8536DS_36BIT \
- MPC8540EVAL \
- MPC8541CDS \
- MPC8548CDS \
- MPC8555CDS \
- MPC8569MDS \
- MPC8569MDS_ATM \
- MPC8569MDS_NAND \
- MPC8572DS \
- MPC8572DS_36BIT \
- P2020DS \
- P2020DS_36BIT \
- P1011RDB \
- P1011RDB_NAND \
- P1011RDB_SDCARD \
- P1011RDB_SPIFLASH \
- P1020RDB \
- P1020RDB_NAND \
- P1020RDB_SDCARD \
- P1020RDB_SPIFLASH \
- P2010RDB \
- P2010RDB_NAND \
- P2010RDB_SDCARD \
- P2010RDB_SPIFLASH \
- P2020RDB \
- P2020RDB_NAND \
- P2020RDB_SDCARD \
- P2020RDB_SPIFLASH \
- sbc8540 \
- sbc8548 \
- sbc8548_PCI_33 \
- sbc8548_PCI_66 \
- sbc8548_PCI_33_PCIE \
- sbc8548_PCI_66_PCIE \
- sbc8560 \
- stxssa \
- TQM8540 \
- TQM8541 \
- TQM8548 \
- TQM8548_AG \
- TQM8548_BE \
- TQM8555 \
- TQM8560 \
- "
- #########################################################################
- ## MPC86xx Systems
- #########################################################################
- LIST_86xx="$(boards_by_cpu mpc86xx)
- MPC8641HPCN_36BIT \
- MPC8641HPCN \
- "
- #########################################################################
- ## 74xx/7xx Systems
- #########################################################################
- LIST_74xx=" \
- DB64360 \
- DB64460 \
- EVB64260 \
- mpc7448hpc2 \
- P3G4 \
- p3m7448 \
- PCIPPC2 \
- PCIPPC6 \
- ZUMA \
- "
- LIST_7xx=" \
- BAB7xx \
- CPCI750 \
- ELPPC \
- p3m750 \
- ppmc7xx \
- "
- #########################################################################
- ## 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} \
- ${LIST_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 \
- 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 \
- devkit8000 \
- 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=" \
- afeb9260 \
- at91cap9adk \
- at91rm9200dk \
- at91rm9200ek \
- at91sam9260ek \
- at91sam9261ek \
- at91sam9263ek \
- at91sam9g10ek \
- at91sam9g20ek \
- at91sam9m10g45ek \
- at91sam9rlek \
- cmc_pu2 \
- CPUAT91 \
- CPU9260 \
- CPU9G20 \
- csb637 \
- eb_cpux9k2 \
- kb9202 \
- meesc \
- mp2usb \
- m501sk \
- otc570 \
- pm9261 \
- pm9263 \
- pm9g45 \
- SBC35_A9G20 \
- TNY_A9260 \
- TNY_A9G20 \
- "
- #########################################################################
- ## Xscale Systems
- #########################################################################
- LIST_pxa="$(boards_by_cpu pxa)
- polaris \
- trizepsiv \
- vpac270_nor \
- vpac270_onenand \
- "
- 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)
- sc520_eNET \
- "
- #########################################################################
- ## 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)
- bf527-ezkit-v2
- "
- #########################################################################
- ## SH Systems
- #########################################################################
- LIST_sh2=" \
- rsk7203 \
- "
- LIST_sh3=" \
- mpr2 \
- ms7720se \
- "
- LIST_sh4=" \
- ms7750se \
- ms7722se \
- MigoR \
- r7780mp \
- r2dplus \
- sh7763rdp \
- sh7785lcr \
- ap325rxa \
- espt \
- "
- LIST_sh=" \
- ${LIST_sh2} \
- ${LIST_sh3} \
- ${LIST_sh4} \
- "
- #########################################################################
- ## SPARC Systems
- #########################################################################
- LIST_sparc="$(boards_by_arch sparc)"
- #-----------------------------------------------------------------------
- build_target() {
- target=$1
- ${MAKE} distclean >/dev/null
- ${MAKE} ${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
- }
- #-----------------------------------------------------------------------
- #----- for now, just run PowerPC by default -----
- [ $# = 0 ] && set -- powerpc
- build_targets "$@"
|