1#	$NetBSD: Makefile,v 1.28 2019/06/02 17:18:57 thorpej Exp $
2
3.include <bsd.own.mk>
4.include "${NETBSDSRCDIR}/distrib/common/Makefile.distrib"
5
6.include <bsd.kernobj.mk>
7
8#
9# `make' or `make all' builds all gzimg files defined in ${ARCH_TARGETS}.
10# `make _KERNELNAME_' builds all gzimg files for specified kernels.
11#
12
13
14
15#	ARCH_TARGETS is a list of:
16#		KERNEL_name	GZBOOT_name	GZIMG_name
17#		RELOC_ADDR	WHICH_kernel
18#	
19.if ${MACHINE_ARCH} == "arm" || \
20    ${MACHINE_ARCH} == "earm" || ${MACHINE_ARCH} == "earmv4"
21# Little endian ARMv4 platforms.
22ARCH_TARGETS=	GEMINI		GEMINI		GEMINI		\
23		0x01600000	netbsd				\
24								\
25		TS7200		TS7200		TS7200_wd0	\
26		0x60660000	netbsd-wd0			\
27								\
28		SMDK2800	SMDK2800	SMDK2800	\
29		0x00000000	netbsd
30.elif ${MACHINE_ARCH} == "arm" || \
31      ${MACHINE_ARCH} == "earm" || ${MACHINE_ARCH} == "earmv5"
32# Little endian ARMv5 platforms.
33ARCH_TARGETS=	ADI_BRH		ADI_BRH		ADI_BRH_sd0	\
34		0x00140000	netbsd-sd0			\
35								\
36		ADI_BRH		ADI_BRH		ADI_BRH_wd0	\
37		0x00140000	netbsd-wd0			\
38								\
39		CP3100		IQ80321		CP3100_sd0	\
40		0xf0080000	netbsd-sd0			\
41								\
42		CP3100		IQ80321		CP3100_wd0	\
43		0xf0080000	netbsd-wd0			\
44								\
45		IQ80310		IQ80310		IQ80310_sd0	\
46		0x00080000	netbsd-sd0			\
47								\
48		IQ80310		IQ80310		IQ80310_wd0	\
49		0x00080000	netbsd-wd0			\
50								\
51		IQ80321		IQ80321		IQ80321_sd0	\
52		0xf0080000	netbsd-sd0			\
53								\
54		IQ80321		IQ80321		IQ80321_wd0	\
55		0xf0080000	netbsd-wd0			\
56								\
57		TEAMASA_NPWR	IQ80310		TEAMASA_NPWR_sd0 \
58		0x00080000	netbsd-sd0
59.elif ${MACHINE_ARCH} == "armeb" || \
60      ${MACHINE_ARCH} == "earmeb" || ${MACHINE_ARCH} == "earmv5eb"
61# Big endian ARMv5 platforms.
62ARCH_TARGETS=	ADI_BRH		ADI_BRH		ADI_BRH_sd0	\
63		0x00140000	netbsd-sd0			\
64								\
65		ADI_BRH		ADI_BRH		ADI_BRH_wd0	\
66		0x00140000	netbsd-wd0
67.endif
68
69# Default is to build for all ARCH_TARGETS
70ALL_KERNELS?= +
71
72.for K G I R W in ${ARCH_TARGETS}			# {
73.for configsel in ${ALL_KERNELS}			# {
74.if ${configsel} == "+" || ${configsel} == ${K}
75
76GZB${G}=	${DESTDIR}/usr/mdec/gzboot_${G}_${R}.bin
77
78GZIMGS+=	gzimg_${I}_flash_${R}.gz
79
80gzimg_${I}_flash_${R}: .NOTMAIN ${GZB${G}} ${KERNOBJDIR}/${K}/${W}.bin
81	@echo "Populating ${.TARGET}"
82	-rm -f ${.TARGET}.kern.gz
83	${TOOL_GZIP_N} -9c ${KERNOBJDIR}/${K}/${W}.bin > ${.TARGET}.kern.gz
84	${TOOL_CAT} ${GZB${G}} ${.TARGET}.kern.gz > ${.TARGET}
85
86gzimg_${I}_flash_${R}.gz: .NOTMAIN gzimg_${I}_flash_${R}
87	-rm -f ${.TARGET}
88	${TOOL_GZIP_N} -9c ${.ALLSRC} > ${.TARGET}
89
90CLEANFILES+=	gzimg_${I}_flash_${R}.kern gzimg_${I}_flash_${R}.kern.gz \
91		gzimg_${I}_flash_${R}
92
93.if empty(GZKERNELS:M${K})
94GZKERNELS+=	$K
95.endif
96KZ${K}+=	gzimg_${I}_flash_${R}.gz
97
98.endif
99.endfor							# }
100.endfor							# }
101
102.for K in ${GZKERNELS}
103${K}: .PHONY ${KZ${K}}
104.endfor
105
106CLEANFILES+=	${GZIMGS}
107
108
109realall: ${GZIMGS}
110
111release: check_RELEASEDIR .WAIT ${GZIMGS}
112.for img in ${GZIMGS}
113	${RELEASE_INSTALL} ${img} ${RELEASEDIR}/${RELEASEMACHINEDIR}/binary/gzimg
114.endfor
115
116.include <bsd.prog.mk>
117