#!/bin/sh

: ${JOBS:=}

if [ "${CROSS_COMPILE}" ] ; then
	MAKE="make CROSS_COMPILE=${CROSS_COMPILE}"
else
	MAKE=make
fi

[ -d LOG ] || mkdir LOG || exit 1

LIST=""

#########################################################################
## MPC5xx Systems
#########################################################################

LIST_5xx="	\
	cmi_mpc5xx							\
"

#########################################################################
## MPC5xxx Systems
#########################################################################

LIST_5xxx="	\
	IceCube_5100	IceCube_5200					\
"

#########################################################################
## MPC8xx Systems
#########################################################################

LIST_8xx="	\
	AdderII		ADS860		AMX860		c2mon		\
	CCM		cogent_mpc8xx	ESTEEM192E	ETX094		\
	ELPT860		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           LANTEC	        lwmon   	MBX		\
	MBX860T		MHPC		MPC86xADS	MVS1		\
	NETVIA		NETVIA_V2	NX823		pcu_e		\
	R360MPI		RBC823		rmu		RPXClassic	\
	RPXlite		RRvision	SM850		SPD823TS	\
	svm_sc8xx	SXNI855T	TOP860		TQM823L		\
	TQM823L_LCD	TQM850L		TQM855L		TQM860L		\
	v37								\
"

#########################################################################
## PPC4xx Systems
#########################################################################

LIST_4xx="	\
	ADCIOP		AR405		ASH405          BUBINGA405EP    \
	CANBT		CPCI405		CPCI4052 	CPCI405AB       \
	CPCI440         CPCIISER4	CRAYL1  	DASA_SIM	\
	DP405           DU405    	EBONY           ERIC  		\
	EXBITGEN	HUB405          MIP405  	MIP405T		\
	ML2		OCRTC		ORSG		PCI405		\
	PIP405		PLU405          PMC405          PPChameleonEVB	\
	VOH405          W7OLMC		W7OLMG          WALNUT405	\
"

#########################################################################
## MPC824x Systems
#########################################################################

LIST_824x="	\
	A3000           BMW		CPC45		CU824		\
	debris		MOUSSE          MUSENKI    	OXC		\
	PN62		Sandpoint8240   Sandpoint8245	SL8245		\
	utx8245								\
"

#########################################################################
## MPC8260 Systems (includes 8250, 8255 etc.)
#########################################################################

LIST_8260="	\
	atc		cogent_mpc8260	CPU86		ep8260		\
	gw8260		hymod		IPHASE4539	MPC8260ADS	\
	MPC8266ADS	PM826		ppmc8260	RPXsuper	\
	rsdproto	sacsng		sbc8260		SCM		\
	TQM8260_AC	TQM8260_AD	TQM8260_AE	ZPC1900		\
"

#########################################################################
## MPC85xx Systems (includes 8540, 8560 etc.)
#########################################################################

LIST_85xx="	\
	MPC8540ADS	MPC8560ADS					\
"

#########################################################################
## 74xx/7xx Systems
#########################################################################

LIST_74xx="	\
	EVB64260	P3G4		PCIPPC2		PCIPPC6		\
	ZUMA								\
"

LIST_7xx="	\
	BAB7xx		ELPPC						\
"

LIST_ppc="${LIST_5xx}  ${LIST_5xxx} \
	  ${LIST_8xx}  \
	  ${LIST_824x} ${LIST_8260} \
	  ${LIST_85xx}	\
	  ${LIST_4xx}		    \
	  ${LIST_74xx} ${LIST_7xx}"

#########################################################################
## StrongARM Systems
#########################################################################

LIST_SA="dnp1110 lart shannon"

#########################################################################
## ARM7 Systems
#########################################################################

LIST_ARM7="ep7312 impa7"

#########################################################################
## ARM9 Systems
#########################################################################

LIST_ARM9="	\
	at91rm9200dk	omap1510inn	omap1610inn			\
	smdk2400	smdk2410	trab				\
	VCMA9								\
"

#########################################################################
## Xscale Systems
#########################################################################

LIST_pxa="cradle csb226 innokom lubbock wepep250"

LIST_ixp="ixdp425"


LIST_arm="${LIST_SA} ${LIST_ARM7} ${LIST_ARM9} ${LIST_pxa} ${LIST_ixp}"

#########################################################################
## MIPS Systems
#########################################################################

LIST_mips4kc="incaip"

LIST_mips5kc="purple"

LIST_au1x00="dbau1x00"

LIST_mips="${LIST_mips4kc} ${LIST_mips5kc} ${LIST_au1x00}"

#########################################################################
## i386 Systems
#########################################################################

LIST_I486="sc520_cdp sc520_spunk sc520_spunk_rel"

LIST_x86="${LIST_I486}"

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

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

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

build_target() {
	target=$1

	${MAKE} distclean >/dev/null
	${MAKE} ${target}_config
	${MAKE} ${JOBS} all 2>&1 >LOG/$target.MAKELOG | tee LOG/$target.ERR
	${CROSS_COMPILE:-ppc_8xx-}size u-boot | tee -a LOG/$target.MAKELOG
}

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


for arg in $@
do
	case "$arg" in
	ppc|5xx|5xxx|8xx|824x|8260|85xx|4xx|7xx|74xx| \
	arm|SA|ARM7|ARM9|pxa|ixp| \
	mips| \
	x86|I486)
			for target in `eval echo '$LIST_'${arg}`
			do
				build_target ${target}
			done
			;;
	*)		build_target ${arg}
			;;
	esac
done
