11.28Sthorpej#	$NetBSD: Makefile,v 1.28 2019/06/02 17:18:57 thorpej Exp $
21.1Slukem
31.1Slukem.include <bsd.own.mk>
41.7Slukem.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib"
51.1Slukem
61.1Slukem.include <bsd.kernobj.mk>
71.1Slukem
81.22Sbsh#
91.26Smatt# `make' or `make all' builds all gzimg files defined in ${ARCH_TARGETS}.
101.22Sbsh# `make _KERNELNAME_' builds all gzimg files for specified kernels.
111.22Sbsh#
121.22Sbsh
131.22Sbsh
141.1Slukem
151.26Smatt#	ARCH_TARGETS is a list of:
161.12Sthorpej#		KERNEL_name	GZBOOT_name	GZIMG_name
171.12Sthorpej#		RELOC_ADDR	WHICH_kernel
181.1Slukem#	
191.28Sthorpej.if ${MACHINE_ARCH} == "arm" || \
201.28Sthorpej    ${MACHINE_ARCH} == "earm" || ${MACHINE_ARCH} == "earmv4"
211.28Sthorpej# Little endian ARMv4 platforms.
221.28SthorpejARCH_TARGETS=	GEMINI		GEMINI		GEMINI		\
231.28Sthorpej		0x01600000	netbsd				\
241.28Sthorpej								\
251.28Sthorpej		TS7200		TS7200		TS7200_wd0	\
261.28Sthorpej		0x60660000	netbsd-wd0			\
271.28Sthorpej								\
281.28Sthorpej		SMDK2800	SMDK2800	SMDK2800	\
291.28Sthorpej		0x00000000	netbsd
301.28Sthorpej.elif ${MACHINE_ARCH} == "arm" || \
311.28Sthorpej      ${MACHINE_ARCH} == "earm" || ${MACHINE_ARCH} == "earmv5"
321.28Sthorpej# Little endian ARMv5 platforms.
331.26SmattARCH_TARGETS=	ADI_BRH		ADI_BRH		ADI_BRH_sd0	\
341.12Sthorpej		0x00140000	netbsd-sd0			\
351.12Sthorpej								\
361.12Sthorpej		ADI_BRH		ADI_BRH		ADI_BRH_wd0	\
371.12Sthorpej		0x00140000	netbsd-wd0			\
381.12Sthorpej								\
391.18Sscw		CP3100		IQ80321		CP3100_sd0	\
401.18Sscw		0xf0080000	netbsd-sd0			\
411.18Sscw								\
421.18Sscw		CP3100		IQ80321		CP3100_wd0	\
431.18Sscw		0xf0080000	netbsd-wd0			\
441.18Sscw								\
451.12Sthorpej		IQ80310		IQ80310		IQ80310_sd0	\
461.12Sthorpej		0x00080000	netbsd-sd0			\
471.12Sthorpej								\
481.12Sthorpej		IQ80310		IQ80310		IQ80310_wd0	\
491.12Sthorpej		0x00080000	netbsd-wd0			\
501.12Sthorpej								\
511.12Sthorpej		IQ80321		IQ80321		IQ80321_sd0	\
521.12Sthorpej		0xf0080000	netbsd-sd0			\
531.12Sthorpej								\
541.12Sthorpej		IQ80321		IQ80321		IQ80321_wd0	\
551.12Sthorpej		0xf0080000	netbsd-wd0			\
561.12Sthorpej								\
571.13Sthorpej		TEAMASA_NPWR	IQ80310		TEAMASA_NPWR_sd0 \
581.28Sthorpej		0x00080000	netbsd-sd0
591.28Sthorpej.elif ${MACHINE_ARCH} == "armeb" || \
601.28Sthorpej      ${MACHINE_ARCH} == "earmeb" || ${MACHINE_ARCH} == "earmv5eb"
611.28Sthorpej# Big endian ARMv5 platforms.
621.26SmattARCH_TARGETS=	ADI_BRH		ADI_BRH		ADI_BRH_sd0	\
631.14Sthorpej		0x00140000	netbsd-sd0			\
641.14Sthorpej								\
651.14Sthorpej		ADI_BRH		ADI_BRH		ADI_BRH_wd0	\
661.14Sthorpej		0x00140000	netbsd-wd0
671.14Sthorpej.endif
681.1Slukem
691.26Smatt# Default is to build for all ARCH_TARGETS
701.24SheALL_KERNELS?= +
711.24She
721.26Smatt.for K G I R W in ${ARCH_TARGETS}			# {
731.23Smlelstv.for configsel in ${ALL_KERNELS}			# {
741.23Smlelstv.if ${configsel} == "+" || ${configsel} == ${K}
751.1Slukem
761.13SthorpejGZB${G}=	${DESTDIR}/usr/mdec/gzboot_${G}_${R}.bin
771.1Slukem
781.12SthorpejGZIMGS+=	gzimg_${I}_flash_${R}.gz
791.1Slukem
801.12Sthorpejgzimg_${I}_flash_${R}: .NOTMAIN ${GZB${G}} ${KERNOBJDIR}/${K}/${W}.bin
811.1Slukem	@echo "Populating ${.TARGET}"
821.9Slukem	-rm -f ${.TARGET}.kern.gz
831.27Sapb	${TOOL_GZIP_N} -9c ${KERNOBJDIR}/${K}/${W}.bin > ${.TARGET}.kern.gz
841.15Slukem	${TOOL_CAT} ${GZB${G}} ${.TARGET}.kern.gz > ${.TARGET}
851.9Slukem
861.12Sthorpejgzimg_${I}_flash_${R}.gz: .NOTMAIN gzimg_${I}_flash_${R}
871.9Slukem	-rm -f ${.TARGET}
881.27Sapb	${TOOL_GZIP_N} -9c ${.ALLSRC} > ${.TARGET}
891.8Slukem
901.12SthorpejCLEANFILES+=	gzimg_${I}_flash_${R}.kern gzimg_${I}_flash_${R}.kern.gz \
911.12Sthorpej		gzimg_${I}_flash_${R}
921.1Slukem
931.22Sbsh.if empty(GZKERNELS:M${K})
941.22SbshGZKERNELS+=	$K
951.22Sbsh.endif
961.22SbshKZ${K}+=	gzimg_${I}_flash_${R}.gz
971.22Sbsh
981.23Smlelstv.endif
991.23Smlelstv.endfor							# }
1001.1Slukem.endfor							# }
1011.1Slukem
1021.22Sbsh.for K in ${GZKERNELS}
1031.22Sbsh${K}: .PHONY ${KZ${K}}
1041.22Sbsh.endfor
1051.22Sbsh
1061.8SlukemCLEANFILES+=	${GZIMGS}
1071.1Slukem
1081.1Slukem
1091.1Slukemrealall: ${GZIMGS}
1101.3Sthorpej
1111.7Slukemrelease: check_RELEASEDIR .WAIT ${GZIMGS}
1121.3Sthorpej.for img in ${GZIMGS}
1131.19Smatt	${RELEASE_INSTALL} ${img} ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/gzimg
1141.3Sthorpej.endfor
1151.1Slukem
1161.1Slukem.include <bsd.prog.mk>
117