Skip to content
Snippets Groups Projects
MAKEALL 14.9 KiB
Newer Older
  • Learn to ignore specific revisions
  • Peter Tyser's avatar
    Peter Tyser committed
    #!/bin/bash
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    # 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
    
    Peter Tyser's avatar
    Peter Tyser committed
    	JOBS="-j $((BUILD_NCPUS + 1))"
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    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
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    LIST=""
    
    
    # Keep track of the number of builds and errors
    ERR_CNT=0
    ERR_LIST=""
    TOTAL_CNT=0
    
    Peter Tyser's avatar
    Peter Tyser committed
    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)
    
    	EVAL5200	\
    	fo300		\
    
    	galaxy5200	\
    
    	icecube_5200	\
    	lite5200b	\
    	mcc200		\
    
    	MVBC_P		\
    
    	PM520		\
    	TB5200		\
    	Total5200	\
    	Total5200_Rev2	\
    	TQM5200		\
    	TQM5200_B	\
    	TQM5200S	\
    
    #########################################################################
    ## MPC512x Systems
    #########################################################################
    
    
    LIST_512x="$(boards_by_cpu mpc512x)
    
    	mpc5121ads	\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #########################################################################
    ## 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	\
    
    	TQM823L		\
    	TQM823L_LCD	\
    	TQM850L		\
    	TQM855L		\
    	TQM860L		\
    	TQM885D		\
    	v37		\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    "
    
    #########################################################################
    ## PPC4xx Systems
    #########################################################################
    
    
    LIST_4xx="$(boards_by_cpu ppc4xx)
    
    	canyonlands_nand \
    
    	CPCI405		\
    	CPCI4052	\
    	CPCI405AB	\
    	CPCI405DT	\
    
    	OCRTC		\
    	ORSG		\
    	PPChameleonEVB	\
    
    	sequoia		\
    	sequoia_nand	\
    
    	v5fx30teval	\
    	v5fx30teval_flash \
    
    	W7OLMC		\
    	W7OLMG		\
    	walnut		\
    
    	xilinx-ppc440-generic \
    	xilinx-ppc440-generic_flash \
    
    	yellowstone	\
    	yosemite	\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    "
    
    
    #########################################################################
    ## MPC8220 Systems
    #########################################################################
    
    
    LIST_8220="$(boards_by_cpu mpc8220)"
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #########################################################################
    ## MPC824x Systems
    #########################################################################
    
    
    LIST_824x="$(boards_by_cpu mpc824x)
    
    	Sandpoint8240	\
    	Sandpoint8245	\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    "
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #########################################################################
    
    ## MPC8260 Systems (includes 8250, 8255 etc.)
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #########################################################################
    
    
    LIST_8260="$(boards_by_cpu mpc8260)
    
    	cogent_mpc8260	\
    	CPU86		\
    	CPU87		\
    	ep8248		\
    	ISPAN		\
    	MPC8260ADS	\
    	MPC8272ADS	\
    	PM826		\
    	PM828		\
    	Rattler8248	\
    	TQM8260_AC	\
    	TQM8260_AD	\
    	TQM8260_AE	\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    "
    
    
    Eran Liberty's avatar
    Eran Liberty committed
    #########################################################################
    ## MPC83xx Systems (includes 8349, etc.)
    #########################################################################
    
    
    LIST_83xx="$(boards_by_cpu mpc83xx)
    
    	MPC8313ERDB_33	\
    
    	MPC8313ERDB_NAND_66	\
    
    	MPC832XEMDS_ATM	\
    
    	MPC8349ITX	\
    	MPC8349ITXGP	\
    	MPC8360EMDS	\
    
    	MPC8360EMDS_ATM	\
    
    	MPC8360ERDK_33	\
    	MPC8360ERDK_66	\
    
    	SIMPC8313_LP	\
    
    #########################################################################
    ## MPC85xx Systems (includes 8540, 8560 etc.)
    #########################################################################
    
    
    LIST_85xx="$(boards_by_cpu mpc85xx)
    
    Mingkai Hu's avatar
    Mingkai Hu committed
    	MPC8536DS_NAND	\
    
    	MPC8536DS_SDCARD	\
    	MPC8536DS_SPIFLASH	\
    
    	MPC8536DS_36BIT	\
    
    	MPC8540EVAL	\
    	MPC8541CDS	\
    	MPC8548CDS	\
    	MPC8555CDS	\
    
    	MPC8569MDS	\
    
    	MPC8569MDS_ATM	\
    
    	MPC8569MDS_NAND \
    
    	P2020DS		\
    	P2020DS_36BIT	\
    
    	P1011RDB_NAND	\
    
    	P1011RDB_SDCARD	\
    	P1011RDB_SPIFLASH	\
    
    	P1020RDB	\
    
    	P1020RDB_NAND	\
    
    	P1020RDB_SDCARD	\
    	P1020RDB_SPIFLASH	\
    
    	P2010RDB_NAND	\
    
    	P2010RDB_SDCARD	\
    	P2010RDB_SPIFLASH	\
    
    	P2020RDB_NAND	\
    
    	P2020RDB_SDCARD	\
    	P2020RDB_SPIFLASH	\
    
    	sbc8548_PCI_33	\
    	sbc8548_PCI_66	\
    	sbc8548_PCI_33_PCIE \
    	sbc8548_PCI_66_PCIE \
    
    	sbc8560		\
    	stxssa		\
    	TQM8540		\
    	TQM8541		\
    
    	TQM8555		\
    	TQM8560		\
    
    #########################################################################
    ## MPC86xx Systems
    #########################################################################
    
    
    LIST_86xx="$(boards_by_cpu mpc86xx)
    
    	MPC8641HPCN_36BIT \
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #########################################################################
    ## 74xx/7xx Systems
    #########################################################################
    
    
    LIST_74xx="		\
    	DB64360		\
    	DB64460		\
    	EVB64260	\
    	mpc7448hpc2	\
    	P3G4		\
    	p3m7448		\
    	PCIPPC2		\
    	PCIPPC6		\
    	ZUMA		\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    "
    
    
    LIST_7xx="		\
    	BAB7xx		\
    	CPCI750		\
    	ELPPC		\
    	p3m750		\
    	ppmc7xx		\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    "
    
    
    #########################################################################
    ## PowerPC groups
    #########################################################################
    
    LIST_TSEC="		\
    	${LIST_83xx}	\
    	${LIST_85xx}	\
    	${LIST_86xx}	\
    "
    
    
    LIST_powerpc="		\
    
    	${LIST_5xxx}	\
    	${LIST_8xx}	\
    	${LIST_8220}	\
    	${LIST_824x}	\
    	${LIST_8260}	\
    	${LIST_83xx}	\
    	${LIST_85xx}	\
    	${LIST_86xx}	\
    	${LIST_4xx}	\
    	${LIST_74xx}	\
    	${LIST_7xx}	\
    "
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    # Alias "ppc" -> "powerpc" to not break compatibility with older scripts
    # still using "ppc" instead of "powerpc"
    LIST_ppc="		\
    	${LIST_powerpc}	\
    "
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #########################################################################
    ## StrongARM Systems
    #########################################################################
    
    
    LIST_SA="$(boards_by_cpu sa1100)"
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    #########################################################################
    ## ARM7 Systems
    #########################################################################
    
    
    LIST_ARM7="		\
    	ap7		\
    	ap720t		\
    	armadillo	\
    	B2		\
    	ep7312		\
    	evb4510		\
    	impa7		\
    	integratorap	\
    	lpc2292sodimm	\
    	modnet50	\
    	SMN42		\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    #########################################################################
    ## ARM9 Systems
    #########################################################################
    
    
    	ap920t			\
    	ap922_XA10		\
    	ap926ejs		\
    	ap946es			\
    	ap966			\
    	cp920t			\
    	cp922_XA10		\
    	cp926ejs		\
    	cp946es			\
    	cp966			\
    
    	edb9301			\
    	edb9302			\
    	edb9302a		\
    	edb9307			\
    	edb9307a		\
    	edb9312			\
    	edb9315			\
    	edb9315a		\
    
    	guruplug		\
    
    	mv88f6281gtw_ge		\
    
    	mx1ads			\
    	mx1fs2			\
    	netstar			\
    
    	nhk8815			\
    	nhk8815_onenand		\
    
    	omap1510inn		\
    	omap1610h2		\
    	omap1610inn		\
    
    	omap5912osk		\
    
    	openrd_base		\
    
    	rd6281a			\
    
    	sbc2410x		\
    	scb9328			\
    
    	sheevaplug		\
    
    	smdk2400		\
    	smdk2410		\
    
    	trab			\
    	VCMA9			\
    	versatile		\
    	versatileab		\
    	versatilepb		\
    	voiceblue		\
    	davinci_dvevm		\
    	davinci_schmoogie	\
    
    	davinci_sonata		\
    
    David Brownell's avatar
    David Brownell committed
    	davinci_dm355evm	\
    
    	davinci_dm355leopard	\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    #########################################################################
    ## ARM10 Systems
    #########################################################################
    
    LIST_ARM10="		\
    	integratorcp	\
    	cp1026		\
    
    #########################################################################
    ## ARM11 Systems
    #########################################################################
    
    LIST_ARM11="			\
    	cp1136			\
    	omap2420h4		\
    	apollon			\
    	imx31_litekit		\
    	imx31_phycore		\
    	imx31_phycore_eet	\
    	mx31ads			\
    
    	tnetv107x_evm		\
    
    #########################################################################
    
    #########################################################################
    
    	am3517_evm		\
    
    Dirk Behme's avatar
    Dirk Behme committed
    	omap3_overo		\
    
    Dirk Behme's avatar
    Dirk Behme committed
    	omap3_evm		\
    
    Dirk Behme's avatar
    Dirk Behme committed
    	omap3_pandora		\
    
    	omap3_sdp3430		\
    
    	omap3_zoom1		\
    
    	omap3_zoom2		\
    
    	omap4_panda		\
    
    	omap4_sdp4430		\
    
    	smdkc100		\
    
    #########################################################################
    ## AT91 Systems
    #########################################################################
    
    
    LIST_at91="			\
    	afeb9260		\
    	at91cap9adk		\
    	at91rm9200dk		\
    	at91rm9200ek		\
    	at91sam9260ek		\
    	at91sam9261ek		\
    	at91sam9263ek		\
    
    	at91sam9g10ek		\
    
    	at91sam9g20ek		\
    
    	at91sam9m10g45ek	\
    
    	at91sam9rlek		\
    	cmc_pu2			\
    
    	CPUAT91			\
    
    	CPU9260			\
    	CPU9G20			\
    
    Jens Scharsig's avatar
    Jens Scharsig committed
    	eb_cpux9k2		\
    
    	kb9202			\
    	meesc			\
    	mp2usb			\
    	m501sk			\
    
    	pm9261			\
    	pm9263			\
    
    Asen Dimov's avatar
    Asen Dimov committed
    	pm9g45			\
    
    	SBC35_A9G20		\
    	TNY_A9260		\
    	TNY_A9G20		\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    #########################################################################
    ## Xscale Systems
    #########################################################################
    
    
    LIST_pxa="$(boards_by_cpu pxa)
    
    	polaris		\
    	trizepsiv	\
    
    Marek Vasut's avatar
    Marek Vasut committed
    	vpac270_nor	\
    	vpac270_onenand	\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    LIST_ixp="$(boards_by_cpu ixp)
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    #########################################################################
    ## ARM groups
    #########################################################################
    
    LIST_arm="			\
    	${LIST_SA}		\
    	${LIST_ARM7}		\
    	${LIST_ARM9}		\
    	${LIST_ARM10}		\
    	${LIST_ARM11}		\
    
    	${LIST_at91}		\
    	${LIST_pxa}		\
    	${LIST_ixp}		\
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    #########################################################################
    
    ## 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	\
    
    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	\
    
    	M5329AFEE		\
    	M5373EVB		\
    
    	M54455EVB		\
    
    #########################################################################
    ## 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	\
    "
    
    
    #########################################################################
    ## SPARC Systems
    #########################################################################
    
    
    LIST_sparc="$(boards_by_arch sparc)"
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    #-----------------------------------------------------------------------
    
    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
    
    Peter Tyser's avatar
    Peter Tyser committed
    
    	# 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
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    }
    
    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
    }
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    #-----------------------------------------------------------------------
    
    
    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 "----------------------------------------------------------"
    
    Peter Tyser's avatar
    Peter Tyser committed
    
    	exit $RC
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    #-----------------------------------------------------------------------
    
    
    #----- for now, just run PowerPC by default -----
    [ $# = 0 ] && set -- powerpc
    
    build_targets "$@"