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