#!/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="	\
	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	\
	DU405    	EBONY           ERIC  		EXBITGEN	\
	MIP405  	MIP405T		ML2		OCRTC		\
	ORSG		PCI405		PIP405		PMC405          \
	W7OLMC		W7OLMG          WALNUT405			\
"

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

LIST_824x="	\
	A3000           BMW		CPC45		CU824		\
	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			\
"

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

LIST_74xx="	\
	EVB64260	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 smdk2400 smdk2410 trab VCMA9"

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

LIST_pxa="cradle csb226 innokom lubbock wepep250"


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

#########################################################################
## MIPS 4Kc Systems
#########################################################################

LIST_mips4kc="incaip"

LIST_mips5kc="purple"

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

#########################################################################
## 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
