11.46Slukem#	$NetBSD: Makefile,v 1.46 2023/06/03 21:26:28 lukem Exp $
21.1Spk
31.12SchristosSTRIPFLAG=
41.24SuwePROGSOURCE=	boot.c net.c netif_sun.c conf.c openfirm.c bootinfo.c \
51.40Schristos		mmu.c prompatch.c
61.5SmrgNEWVERSWHAT=	"Secondary Boot"
71.32SmartinFILES=		boot.net bootjs.net ${RELOCS:S/^/boot./g}
81.40SchristosCLEANFILES:=	${FILES}
91.17SpkLINKS=		${BINDIR}/boot.${RELOC_DEFAULT} ${BINDIR}/boot
101.27Sthorpej
111.33SmartinCPPFLAGS+=	-DBOOT_AOUT -DBOOT_ELF32 -DSUPPORT_DHCP
121.29SmrgCFLAGS+=	-freestanding
131.1Spk
141.5SmrgINCLUDE_LIBZ=	yes
151.5SmrgSAMISCMAKEFLAGS= SA_USE_CREAD=yes
161.5Smrg
171.43Srin# Follow the suit of Makefile.kern.inc; needed for the lfs64 union
181.43Srin# accessors -- they don't actually dereference the resulting pointer,
191.43Srin# just use it for type-checking.
201.46SlukemCWARNFLAGS+=	${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
211.43Srin
221.5Smrg.include "../Makefile.buildboot"
231.25Smrg
241.36Snakayama.if ${MACHINE} == sparc64
251.25SmrgCFLAGS+=	-m32
261.25SmrgLDFLAGS+=	-m elf32_sparc
271.25SmrgAFLAGS+=	-Wa,-32
281.25Smrg.endif
291.7Spk
301.17Spk.include <bsd.own.mk>
311.12Schristos
321.17SpkOBJS=${SRCS:N*.h:N*.sh:N*.fth:R:S/$/.o/g}
331.15Ssommerfe
341.38SmrgLINKFLAGS=-N -e start -Map $@.map
351.12Schristos
361.17Spk.MAIN: all
371.20Smycroftrealall: ${FILES}
381.5Smrg
391.24Suwe
401.12Schristos# conjure up a magic header that is accepted by all Sun PROMS;
411.12Schristos# see installboot.c for details.
421.21Ssommerfe
431.21SsommerfeSUN_MAGIC_HEADER='\01\03\01\07\060\200\0\07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'
441.21Ssommerfe
451.17Spkboot.net: boot.${RELOC_DEFAULT}
461.21Ssommerfe	(printf ${SUN_MAGIC_HEADER}; cat ${.ALLSRC} ) > ${.TARGET}
471.31Smartin
481.42Schristos
491.42Schristos.include "${S}/conf/newvers_stand.mk"
501.42Schristos
511.42Schristos.include <bsd.prog.mk>
521.42Schristos
531.32Smartinbootjs.net: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
541.39Smartin	${LD} -S -o ${.TARGET} ${LINKFLAGS} -Ttext 300000 ${OBJS} \
551.31Smartin	    ${LIBSA} ${LIBZ} ${LIBKERN}
561.31Smartin	${SIZE} ${.TARGET}
571.38SmrgCLEANFILES+=	bootjs.net.map
581.1Spk
591.41Schristos.for RELOC in ${RELOCS}
601.41Schristosboot.${RELOC}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
611.41Schristos	${LD} -S -o ${.TARGET}.tmp ${LINKFLAGS} -Ttext ${RELOC} ${OBJS} \
621.41Schristos	    ${LIBSA} ${LIBZ} ${LIBKERN}
631.41Schristos	${SIZE} ${.TARGET}.tmp
641.41Schristos	${OBJCOPY} -O binary ${.TARGET}.tmp ${.TARGET}
651.41Schristos	rm -f ${.TARGET}.tmp
661.41SchristosCLEANFILES+=	boot.${RELOC}.map
671.41Schristos.endfor
68