1#	$NetBSD: Makefile,v 1.61 2025/10/05 21:18:29 thorpej Exp $
2#
3
4.include <bsd.own.mk>
5
6PROG=	installboot
7MAN=	installboot.8
8SRCS=	installboot.c sum.c machines.c fstypes.c
9
10ARCH_XLAT= amd64-i386.c news68k-news.c newsmips-news.c
11ARCH_XLAT+= sun2-sun68k.c sun3-sun68k.c
12
13.if !defined(SMALLPROG) && !defined(ARCH_FILES)
14ARCH_FILES=  alpha.c amiga.c
15ARCH_FILES+= evbarm.c evbmips.c ews4800mips.c
16ARCH_FILES+= hp300.c hppa.c
17ARCH_FILES+= i386.c
18ARCH_FILES+= landisk.c
19ARCH_FILES+= macppc.c
20ARCH_FILES+= news.c next68k.c
21ARCH_FILES+= pmax.c
22ARCH_FILES+= riscv.c
23ARCH_FILES+= sparc.c sparc64.c sun68k.c
24ARCH_FILES+= vax.c
25ARCH_FILES+= x68k.c
26.else
27ARCH_FILES?= ${ARCH_XLAT:M${MACHINE}-*:S/${MACHINE}-//}
28.if empty(ARCH_FILES)
29ARCH_FILES= ${MACHINE}.c
30.endif
31COPTS.machines.c+=	-DSINGLE_ARCH=ib_mach_${MACHINE}
32.endif
33
34SRCS+=${ARCH_FILES}
35
36.if !empty(ARCH_FILES:C/(evbarm|evbmips|riscv)/evboard/:Mevboard.c)
37SRCS+=evboards.c
38.endif
39
40.if !empty(ARCH_FILES:C/(evbarm|evbmips|riscv)/fdt/:Mfdt.c)
41FDTDIR=		${.CURDIR}/../../sys/external/bsd/libfdt/dist
42.PATH:		${FDTDIR}
43CPPFLAGS+=	-DSUPPORT_FDT -I${FDTDIR}
44SRCS+=fdt.c fdt_ro.c fdt_strerror.c
45# XXX libfdt has some sign-comparison issues
46COPTS.fdt.c+=		-Wno-error=sign-compare
47COPTS.fdt_ro.c+=	-Wno-error=sign-compare
48COPTS.fdt_strerror.c+=	-Wno-error=sign-compare
49.endif
50
51
52.if !defined(HOSTPROGNAME)
53.if !empty(ARCH_FILES:C/(evbarm|evbmips|riscv)/ofw/:Mofw.c)
54CPPFLAGS+=	-DSUPPORT_OPENFIRMWARE
55.endif
56.endif
57
58.if empty(ARCH_FILES:C/(macppc|news|sparc|sun68k|x68k)/stg2/:Mstg2.c)
59CPPFLAGS+=	-DNO_STAGE2
60.else
61SRCS+= bbinfo.c
62
63# fstypes are only needed for 'stage2' and then only from bbinfo.
64SRCS+= ffs.c
65.if SMALLPROG
66CPPFLAGS+=	-DNO_FFS_SWAP
67.else
68SRCS+= ffs_bswap.c
69.endif
70#SRCS+= ext2fs.c ext2fs_bswap.c
71.endif
72
73.if !empty(ARCH_FILES:C/(hp300|macppc)/cd9660/:Mcd9660.c) && \
74    !defined(SMALLPROG)
75CPPFLAGS+=	-DSUPPORT_CD9660
76SRCS+= cd9660.c cd9660_util.c
77
78.if !make(obj) && !make(clean) && !make(cleandir)
79.BEGIN:
80	-rm -rf fs
81	${HOST_INSTALL_DIR} fs
82	${HOST_INSTALL_DIR} fs/cd9660
83	${HOST_LN} -s ${NETBSDSRCDIR}/sys/fs/unicode.h fs
84	${HOST_LN} -s ${NETBSDSRCDIR}/sys/fs/cd9660/iso.h fs/cd9660
85	${HOST_LN} -s ${NETBSDSRCDIR}/sys/fs/cd9660/cd9660_extern.h fs/cd9660
86.endif
87
88cleandir distclean: cleaninc
89
90cleaninc:
91	-rm -rf fs
92.endif
93
94UFSSRC=		${NETBSDSRCDIR}/sys/ufs
95CD9660SRC=	${NETBSDSRCDIR}/sys/fs/cd9660
96CPPFLAGS+=	-I${.CURDIR} -I.
97.PATH:		${.CURDIR}/arch ${UFSSRC}/ffs ${UFSSRC}/ext2fs ${CD9660SRC}
98
99.if !defined(HOSTPROGNAME)
100.for f in i386 macppc
101COPTS.${f}.c+=  -Wno-pointer-sign
102.endfor
103
104.if !empty(SRCS:Mevboards.c)
105LDADD+=	-lprop
106DPADD+=	${LIBPROP}
107.endif
108
109LDADD+= -lutil
110DPADD+= ${LIBUTIL}
111.endif
112
113CWARNFLAGS+=		${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
114
115.include <bsd.prog.mk>
116