11.61Sthorpej#	$NetBSD: Makefile,v 1.61 2025/10/05 21:18:29 thorpej Exp $
21.1Slukem#
31.14Sbjh21
41.14Sbjh21.include <bsd.own.mk>
51.1Slukem
61.1SlukemPROG=	installboot
71.1SlukemMAN=	installboot.8
81.34SdslSRCS=	installboot.c sum.c machines.c fstypes.c
91.34Sdsl
101.34SdslARCH_XLAT= amd64-i386.c news68k-news.c newsmips-news.c
111.34SdslARCH_XLAT+= sun2-sun68k.c sun3-sun68k.c
121.34Sdsl
131.34Sdsl.if !defined(SMALLPROG) && !defined(ARCH_FILES)
141.52SthorpejARCH_FILES=  alpha.c amiga.c
151.60StsutsuiARCH_FILES+= evbarm.c evbmips.c ews4800mips.c
161.52SthorpejARCH_FILES+= hp300.c hppa.c
171.52SthorpejARCH_FILES+= i386.c
181.52SthorpejARCH_FILES+= landisk.c
191.52SthorpejARCH_FILES+= macppc.c
201.52SthorpejARCH_FILES+= news.c next68k.c
211.52SthorpejARCH_FILES+= pmax.c
221.61SthorpejARCH_FILES+= riscv.c
231.52SthorpejARCH_FILES+= sparc.c sparc64.c sun68k.c
241.52SthorpejARCH_FILES+= vax.c
251.52SthorpejARCH_FILES+= x68k.c
261.34Sdsl.else
271.34SdslARCH_FILES?= ${ARCH_XLAT:M${MACHINE}-*:S/${MACHINE}-//}
281.34Sdsl.if empty(ARCH_FILES)
291.34SdslARCH_FILES= ${MACHINE}.c
301.34Sdsl.endif
311.54SmartinCOPTS.machines.c+=	-DSINGLE_ARCH=ib_mach_${MACHINE}
321.34Sdsl.endif
331.34Sdsl
341.34SdslSRCS+=${ARCH_FILES}
351.34Sdsl
361.61Sthorpej.if !empty(ARCH_FILES:C/(evbarm|evbmips|riscv)/evboard/:Mevboard.c)
371.52SthorpejSRCS+=evboards.c
381.52Sthorpej.endif
391.52Sthorpej
401.61Sthorpej.if !empty(ARCH_FILES:C/(evbarm|evbmips|riscv)/fdt/:Mfdt.c)
411.52SthorpejFDTDIR=		${.CURDIR}/../../sys/external/bsd/libfdt/dist
421.52Sthorpej.PATH:		${FDTDIR}
431.52SthorpejCPPFLAGS+=	-DSUPPORT_FDT -I${FDTDIR}
441.52SthorpejSRCS+=fdt.c fdt_ro.c fdt_strerror.c
451.52Sthorpej# XXX libfdt has some sign-comparison issues
461.52SthorpejCOPTS.fdt.c+=		-Wno-error=sign-compare
471.52SthorpejCOPTS.fdt_ro.c+=	-Wno-error=sign-compare
481.52SthorpejCOPTS.fdt_strerror.c+=	-Wno-error=sign-compare
491.52Sthorpej.endif
501.52Sthorpej
511.52Sthorpej
521.52Sthorpej.if !defined(HOSTPROGNAME)
531.61Sthorpej.if !empty(ARCH_FILES:C/(evbarm|evbmips|riscv)/ofw/:Mofw.c)
541.52SthorpejCPPFLAGS+=	-DSUPPORT_OPENFIRMWARE
551.52Sthorpej.endif
561.52Sthorpej.endif
571.52Sthorpej
581.34Sdsl.if empty(ARCH_FILES:C/(macppc|news|sparc|sun68k|x68k)/stg2/:Mstg2.c)
591.52SthorpejCPPFLAGS+=	-DNO_STAGE2
601.34Sdsl.else
611.34SdslSRCS+= bbinfo.c
621.34Sdsl
631.34Sdsl# fstypes are only needed for 'stage2' and then only from bbinfo.
641.34SdslSRCS+= ffs.c
651.34Sdsl.if SMALLPROG
661.34SdslCPPFLAGS+=	-DNO_FFS_SWAP
671.34Sdsl.else
681.34SdslSRCS+= ffs_bswap.c
691.34Sdsl.endif
701.38Stsutsui#SRCS+= ext2fs.c ext2fs_bswap.c
711.34Sdsl.endif
721.1Slukem
731.59Stsutsui.if !empty(ARCH_FILES:C/(hp300|macppc)/cd9660/:Mcd9660.c) && \
741.59Stsutsui    !defined(SMALLPROG)
751.59StsutsuiCPPFLAGS+=	-DSUPPORT_CD9660
761.59StsutsuiSRCS+= cd9660.c cd9660_util.c
771.59Stsutsui
781.59Stsutsui.if !make(obj) && !make(clean) && !make(cleandir)
791.59Stsutsui.BEGIN:
801.59Stsutsui	-rm -rf fs
811.59Stsutsui	${HOST_INSTALL_DIR} fs
821.59Stsutsui	${HOST_INSTALL_DIR} fs/cd9660
831.59Stsutsui	${HOST_LN} -s ${NETBSDSRCDIR}/sys/fs/unicode.h fs
841.59Stsutsui	${HOST_LN} -s ${NETBSDSRCDIR}/sys/fs/cd9660/iso.h fs/cd9660
851.59Stsutsui	${HOST_LN} -s ${NETBSDSRCDIR}/sys/fs/cd9660/cd9660_extern.h fs/cd9660
861.59Stsutsui.endif
871.59Stsutsui
881.59Stsutsuicleandir distclean: cleaninc
891.59Stsutsui
901.59Stsutsuicleaninc:
911.59Stsutsui	-rm -rf fs
921.59Stsutsui.endif
931.59Stsutsui
941.17SlukemUFSSRC=		${NETBSDSRCDIR}/sys/ufs
951.59StsutsuiCD9660SRC=	${NETBSDSRCDIR}/sys/fs/cd9660
961.12SlukemCPPFLAGS+=	-I${.CURDIR} -I.
971.59Stsutsui.PATH:		${.CURDIR}/arch ${UFSSRC}/ffs ${UFSSRC}/ext2fs ${CD9660SRC}
981.26Smrg
991.36Smrg.if !defined(HOSTPROGNAME)
1001.35Smrg.for f in i386 macppc
1011.35SmrgCOPTS.${f}.c+=  -Wno-pointer-sign
1021.35Smrg.endfor
1031.35Smrg
1041.52Sthorpej.if !empty(SRCS:Mevboards.c)
1051.52SthorpejLDADD+=	-lprop
1061.52SthorpejDPADD+=	${LIBPROP}
1071.52Sthorpej.endif
1081.52Sthorpej
1091.49SmlelstvLDADD+= -lutil
1101.49SmlelstvDPADD+= ${LIBUTIL}
1111.50Sjoerg.endif
1121.49Smlelstv
1131.58SlukemCWARNFLAGS+=		${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
1141.51Sjoerg
1151.1Slukem.include <bsd.prog.mk>
116