#!/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		\
	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="			\
	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} -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
}

#-----------------------------------------------------------------------

#----- for now, just run PowerPC by default -----
[ $# = 0 ] && set -- powerpc

build_targets "$@"
