#!/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	EVAL5200	PM520		\
"

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

LIST_8xx="	\
	Adder87x	GENIETV		MBX860T		RBC823		\
	AdderII		GTH		MHPC		rmu		\
	ADS860		hermes		MPC86xADS	RPXClassic	\
	AMX860		IAD210		MPC885ADS	RPXlite		\
	c2mon		ICU862_100MHz	MVS1		RPXlite_DW	\
	CCM		IP860		NETPHONE	RRvision	\
	cogent_mpc8xx	IVML24		NETTA		SM850		\
	ELPT860		IVML24_128	NETTA2		SPD823TS	\
	ESTEEM192E	IVML24_256	NETTA_ISDN	svm_sc8xx	\
	ETX094		IVMS8		NETVIA		SXNI855T	\
	FADS823		IVMS8_128	NETVIA_V2	TOP860		\
	FADS850SAR	IVMS8_256	NX823		TQM823L		\
	FADS860T	KUP4K		pcu_e		TQM823L_LCD	\
	FLAGADM		KUP4X		QS823		TQM850L		\
	FPS850L		LANTEC		QS850		TQM855L		\
	GEN860T		lwmon		QS860T		TQM860L		\
	GEN860T_SC	MBX		R360MPI		v37		\
"

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

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

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

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

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

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

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

LIST_85xx="	\
	MPC8540ADS	MPC8560ADS	stxgp3				\
"

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

LIST_74xx="	\
	DB64360		DB64460		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="assabet dnp1110 gcplus lart shannon"

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

LIST_ARM7="B2 ep7312 evb4510 impa7 modnet50"

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

LIST_ARM9="	\
	at91rm9200dk	integratorcp	integratorap			\
	lpd7a400	mx1ads		omap1510inn			\
	omap1610h2	omap1610inn	omap730p2			\
	smdk2400	smdk2410	trab				\
	VCMA9		versatile					\
"

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

LIST_pxa="cradle csb226 innokom lubbock wepep250 xm250 xsengine"

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="dbau1000 dbau1100 dbau1500"

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

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

LIST_I486="sc520_cdp sc520_spunk sc520_spunk_rel"

LIST_x86="${LIST_I486}"

#########################################################################
## NIOS Systems
#########################################################################

LIST_nios="	\
	ADNPESC1 ADNPESC1_base_32					\
	ADNPESC1_DNPEVA2_base_32					\
	DK1C20 DK1C20_standard_32					\
	DK1S10 DK1S10_standard_32 DK1S10_mtx_ldk_20			\
"

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

#----- 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| \
	nios| \
	x86|I486)
			for target in `eval echo '$LIST_'${arg}`
			do
				build_target ${target}
			done
			;;
	*)		build_target ${arg}
			;;
	esac
done
