#!/bin/sh

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

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

LIST=""

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

LIST_8xx="	\
	ADS860		AMX860		c2mon		CCM		\
	cogent_mpc8xx	ESTEEM192E	ETX094		FADS823		\
	FADS850SAR	FADS860T	FLAGADM		FPS850L		\
	GEN860T		GENIETV		GTH		hermes		\
	IAD210		ICU862_100MHz	IP860		IVML24		\
	IVML24_128	IVML24_256	IVMS8		IVMS8_128	\
	IVMS8_256	KUP4K           LANTEC	        lwmon   	\
	MBX		MBX860T		MHPC		MVS1		\
	NETVIA		NX823		pcu_e		R360MPI		\
	RPXClassic	RPXlite		RRvision	SM850		\
	SPD823TS	SXNI855T	TOP860		TQM823L		\
	TQM823L_LCD	TQM850L		TQM855L		TQM860L		\
	TQM860L_FEC	TTTech		v37				\
"

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

LIST_4xx="	\
	ADCIOP		AR405		CANBT		CPCI405		\
	CPCI4052 	CPCI440         CPCIISER4	CRAYL1  	\
	DASA_SIM	DU405    	EBONY           ERIC  		\
	MIP405  	ML2		OCRTC		ORSG		\
	PCI405          PIP405		W7OLMC		W7OLMG          \
	WALNUT405							\
"

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

LIST_824x="	\
	BMW		CU824		MOUSSE		MUSENKI		\
	OXC		PN62		Sandpoint8240	Sandpoint8245	\
	utx8245								\
"

#########################################################################
## MPC8260 Systems
#########################################################################

LIST_8260="	\
	cogent_mpc8260	CPU86		ep8260		gw8260		\
	hymod		IPHASE4539	MPC8260ADS	MPC8266ADS	\
	PM826		ppmc8260	RPXsuper	rsdproto	\
	sacsng		sbc8260		SCM		TQM8260		\
"

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

LIST_74xx="	\
	EVB64260	PCIPPC2		PCIPPC6		ZUMA		\
"

LIST_7xx="	\
	BAB7xx		ELPPC						\
"

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

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

LIST_SA="lart shannon dnp1110"

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

LIST_ARM7="impa7 ep7312"

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

LIST_ARM9="smdk2400 smdk2410 trab"

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

LIST_xscale="lubbock cradle csb226 innokom"


LIST_arm="${LIST_SA} ${LIST_ARM7} ${LIST_ARM9} ${LIST_xscale}"


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

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

build_target() {
	target=$1

	${MAKE} distclean >/dev/null
	${MAKE} ${target}_config
	${MAKE} 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
	8xx|824x|8260|4xx|7xx|74xx|SA|ARM7|ARM9|ppc|arm|xscale)
			for target in `eval echo '$LIST_'${arg}`
			do
				build_target ${target}
			done
			;;
	*)		build_target ${arg}
			;;
	esac
done
