#!/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 ######################################################################### ## MPC5xx Systems ######################################################################### LIST_5xx=" \ cmi_mpc5xx \ " ######################################################################### ## MPC5xxx Systems ######################################################################### LIST_5xxx=" \ BC3450 \ cm5200 \ cpci5200 \ digsy_mtc \ EVAL5200 \ fo300 \ galaxy5200 \ icecube_5200 \ inka4x0 \ ipek01 \ lite5200b \ mcc200 \ mecp5200 \ motionpro \ munices \ MVBC_P \ MVSMR \ o2dnt \ pcm030 \ pf5200 \ PM520 \ TB5200 \ Total5200 \ Total5200_Rev2 \ TQM5200 \ TQM5200_B \ TQM5200S \ v38b \ " ######################################################################### ## MPC512x Systems ######################################################################### LIST_512x=" \ aria \ mecp5123 \ mpc5121ads \ pdm360ng \ " ######################################################################### ## MPC8xx Systems ######################################################################### LIST_8xx=" \ Adder87x \ AdderII \ ADS860 \ AMX860 \ c2mon \ CCM \ cogent_mpc8xx \ ELPT860 \ EP88x \ ESTEEM192E \ ETX094 \ FADS823 \ FADS850SAR \ FADS860T \ FLAGADM \ FPS850L \ GEN860T \ GEN860T_SC \ GENIETV \ GTH \ hermes \ IAD210 \ ICU862_100MHz \ IP860 \ IVML24 \ IVML24_128 \ IVML24_256 \ IVMS8 \ IVMS8_128 \ IVMS8_256 \ KUP4K \ KUP4X \ LANTEC \ lwmon \ kmsupx4 \ MBX \ MBX860T \ mgsuvd \ MHPC \ MPC86xADS \ MPC885ADS \ NETPHONE \ NETTA \ NETTA2 \ NETTA_ISDN \ NETVIA \ NETVIA_V2 \ NX823 \ pcu_e \ QS823 \ QS850 \ QS860T \ quantum \ R360MPI \ RBC823 \ rmu \ RPXClassic \ RPXlite \ RPXlite_DW \ RRvision \ SM850 \ spc1920 \ SPD823TS \ svm_sc8xx \ SXNI855T \ TK885D \ TOP860 \ TQM823L \ TQM823L_LCD \ TQM850L \ TQM855L \ TQM860L \ TQM885D \ uc100 \ v37 \ " ######################################################################### ## PPC4xx Systems ######################################################################### LIST_4xx=" \ acadia \ acadia_nand \ ADCIOP \ alpr \ AP1000 \ APC405 \ AR405 \ arches \ ASH405 \ bamboo \ bamboo_nand \ bubinga \ CANBT \ canyonlands \ canyonlands_nand \ CMS700 \ CPCI2DP \ CPCI405 \ CPCI4052 \ CPCI405AB \ CPCI405DT \ CPCIISER4 \ CRAYL1 \ csb272 \ csb472 \ DASA_SIM \ devconcenter \ dlvision \ DP405 \ DU405 \ DU440 \ ebony \ ERIC \ fx12mm \ G2000 \ gdppc440etx \ glacier \ haleakala \ haleakala_nand \ hcu4 \ hcu5 \ HH405 \ HUB405 \ icon \ intip \ JSE \ KAREF \ katmai \ kilauea \ kilauea_nand \ korat \ luan \ lwmon5 \ makalu \ mcu25 \ METROBOX \ MIP405 \ MIP405T \ ML2 \ ml507 \ ml507_flash \ neo \ ocotea \ OCRTC \ ORSG \ p3p440 \ PCI405 \ pcs440ep \ PIP405 \ PLU405 \ PMC405 \ PMC405DE \ PMC440 \ PPChameleonEVB \ quad100hd \ rainier \ redwood \ sbc405 \ sc3 \ sequoia \ sequoia_nand \ t3corp \ taihu \ taishan \ v5fx30teval \ v5fx30teval_flash \ VOH405 \ VOM405 \ W7OLMC \ W7OLMG \ walnut \ WUH405 \ xilinx-ppc440-generic \ xilinx-ppc440-generic_flash \ XPEDITE1000 \ yellowstone \ yosemite \ yucca \ zeus \ " ######################################################################### ## MPC8220 Systems ######################################################################### LIST_8220=" \ Alaska8220 \ Yukon8220 \ " ######################################################################### ## MPC824x Systems ######################################################################### LIST_824x=" \ A3000 \ barco \ BMW \ CPC45 \ CU824 \ debris \ eXalion \ HIDDEN_DRAGON \ IDS8247 \ linkstation_HGLAN \ MOUSSE \ MUSENKI \ MVBLUE \ OXC \ PN62 \ Sandpoint8240 \ Sandpoint8245 \ sbc8240 \ utx8245 \ " ######################################################################### ## MPC8260 Systems (includes 8250, 8255 etc.) ######################################################################### LIST_8260=" \ atc \ cogent_mpc8260 \ CPU86 \ CPU87 \ ep8248 \ ep8260 \ ep82xxm \ gw8260 \ hymod \ IPHASE4539 \ ISPAN \ mgcoge \ MPC8260ADS \ MPC8266ADS \ MPC8272ADS \ PM826 \ PM828 \ ppmc8260 \ Rattler8248 \ RPXsuper \ rsdproto \ sacsng \ sbc8260 \ SCM \ TQM8260_AC \ TQM8260_AD \ TQM8260_AE \ TQM8272 \ ZPC1900 \ " ######################################################################### ## MPC83xx Systems (includes 8349, etc.) ######################################################################### LIST_83xx=" \ caddy2 \ kmeter1 \ MPC8313ERDB_33 \ MPC8313ERDB_NAND_66 \ MPC8315ERDB \ MPC8315ERDB_NAND \ MPC8323ERDB \ MPC832XEMDS \ MPC832XEMDS_ATM \ MPC8349EMDS \ MPC8349ITX \ MPC8349ITXGP \ MPC8360EMDS \ MPC8360EMDS_ATM \ MPC8360ERDK_33 \ MPC8360ERDK_66 \ MPC837XEMDS \ MPC837XERDB \ MVBLM7 \ sbc8349 \ SIMPC8313_LP \ TQM834x \ vme8349 \ " ######################################################################### ## MPC85xx Systems (includes 8540, 8560 etc.) ######################################################################### LIST_85xx=" \ ATUM8548 \ MPC8536DS \ MPC8536DS_NAND \ MPC8536DS_SDCARD \ MPC8536DS_SPIFLASH \ MPC8536DS_36BIT \ MPC8540ADS \ MPC8540EVAL \ MPC8541CDS \ MPC8544DS \ MPC8548CDS \ MPC8555CDS \ MPC8560ADS \ MPC8568MDS \ 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 \ PM854 \ PM856 \ sbc8540 \ sbc8548 \ sbc8548_PCI_33 \ sbc8548_PCI_66 \ sbc8548_PCI_33_PCIE \ sbc8548_PCI_66_PCIE \ sbc8560 \ socrates \ stxgp3 \ stxssa \ TQM8540 \ TQM8541 \ TQM8548 \ TQM8548_AG \ TQM8548_BE \ TQM8555 \ TQM8560 \ XPEDITE5200 \ XPEDITE5370 \ " ######################################################################### ## MPC86xx Systems ######################################################################### LIST_86xx=" \ MPC8610HPCD \ MPC8641HPCN_36BIT \ MPC8641HPCN \ sbc8641d \ XPEDITE5170 \ " ######################################################################### ## 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=" \ assabet \ dnp1110 \ gcplus \ lart \ shannon \ " ######################################################################### ## 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 \ 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 \ " ######################################################################### ## ARM Cortex-A8 Systems ######################################################################### LIST_ARM_CORTEX_A8=" \ am3517_evm \ devkit8000 \ mx51evk \ omap3_beagle \ omap3_overo \ omap3_evm \ omap3_pandora \ omap3_sdp3430 \ omap3_zoom1 \ omap3_zoom2 \ 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=" \ cerf250 \ cradle \ csb226 \ delta \ innokom \ lubbock \ pleb2 \ polaris \ pxa255_idp \ trizepsiv \ wepep250 \ xaeniax \ xm250 \ xsengine \ zylonite \ " LIST_ixp=" \ actux1 \ actux2 \ actux3 \ actux4 \ ixdp425 \ ixdpg425 \ pdnb3 \ scpu \ " ######################################################################### ## ARM groups ######################################################################### LIST_arm=" \ ${LIST_SA} \ ${LIST_ARM7} \ ${LIST_ARM9} \ ${LIST_ARM10} \ ${LIST_ARM11} \ ${LIST_ARM_CORTEX_A8} \ ${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_I486=" \ sc520_cdp \ sc520_eNET \ sc520_spunk \ sc520_spunk_rel \ " LIST_x86=" \ ${LIST_I486} \ " ######################################################################### ## Nios-II Systems ######################################################################### LIST_nios2=" \ PCI5441 \ PK1C20 \ nios2-generic \ " ######################################################################### ## MicroBlaze Systems ######################################################################### LIST_microblaze=" \ microblaze-generic \ " ######################################################################### ## ColdFire Systems ######################################################################### LIST_coldfire=" \ astro_mcf5373l \ cobra5272 \ EB+MCF-EV123 \ EB+MCF-EV123_internal \ idmr \ M5208EVBE \ M52277EVB \ M5235EVB \ M5249EVB \ M5253DEMO \ M5253EVBE \ M5271EVB \ M5272C3 \ M5275EVB \ M5282EVB \ M53017EVB \ M5329AFEE \ M5373EVB \ M54451EVB \ M54455EVB \ M5475AFE \ M5485AFE \ TASREG \ " ######################################################################### ## AVR32 Systems ######################################################################### LIST_avr32=" \ atstk1002 \ atstk1003 \ atstk1004 \ atstk1006 \ atngw100 \ favr-32-ezkit \ hammerhead \ mimc200 \ " ######################################################################### ## Blackfin Systems ######################################################################### LIST_blackfin=" \ bf518f-ezbrd \ bf526-ezbrd \ bf527-ezkit \ bf527-ezkit-v2 \ bf533-ezkit \ bf533-stamp \ bf537-minotaur \ bf537-pnav \ bf537-srv1 \ bf537-stamp \ bf538f-ezkit \ bf548-ezkit \ bf561-acvilon \ bf561-ezkit \ blackstamp \ cm-bf527 \ cm-bf533 \ cm-bf537e \ cm-bf537u \ cm-bf548 \ cm-bf561 \ ibf-dsp561 \ ip04 \ tcm-bf518 \ tcm-bf537 \ " ######################################################################### ## 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="gr_xc3s_1500 gr_cpci_ax2000 gr_ep2s60 grsim grsim_leon2" #----------------------------------------------------------------------- #----- for now, just run PowerPC by default ----- [ $# = 0 ] && set $LIST_powerpc #----------------------------------------------------------------------- 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 } #----------------------------------------------------------------------- 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 arg in $@ do case "$arg" in arm|SA|ARM7|ARM9|ARM10|ARM11|ARM_CORTEX_A8|at91|ixp|pxa \ |avr32 \ |blackfin \ |coldfire \ |microblaze \ |mips|mips_el \ |nios2 \ |ppc|powerpc|5xx|5xxx|512x|8xx|8220|824x|8260|83xx|85xx|86xx|4xx|7xx|74xx|TSEC \ |sh|sh2|sh3|sh4 \ |sparc \ |x86|I486 \ ) for target in `eval echo '$LIST_'${arg}` do build_target ${target} done ;; *) build_target ${arg} ;; esac done