#!/bin/sh

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		\
"

#########################################################################
## 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_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_arm="${LIST_SA} ${LIST_ARM7} ${LIST_ARM9} ${LIST_pxa}"

#########################################################################
## 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} 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
	5xx|5xxx|8xx|824x|8260|4xx|7xx|74xx|SA|ARM7|ARM9|ppc|arm|pxa|mips|I486|x86)
			for target in `eval echo '$LIST_'${arg}`
			do
				build_target ${target}
			done
			;;
	*)		build_target ${arg}
			;;
	esac
done