1214501Srpaulo
2214501SrpauloLOADER_DISK_SUPPORT?=	yes
3214501SrpauloLOADER_CD9660_SUPPORT?=	yes
4214501SrpauloLOADER_MSDOS_SUPPORT?=	no
5252726SrpauloLOADER_EXT2FS_SUPPORT?=	yes
6252726SrpauloLOADER_UFS_SUPPORT?=	yes
7214501SrpauloLOADER_ZFS_SUPPORT?=	yes
8214501SrpauloLOADER_NET_SUPPORT?=	no
9214501SrpauloLOADER_NFS_SUPPORT?=	no
10214501SrpauloLOADER_TFTP_SUPPORT?=	no
11214501SrpauloLOADER_GZIP_SUPPORT?=	no
12214501SrpauloLOADER_BZIP2_SUPPORT?=	no
13214501Srpaulo
14214501Srpaulo.include <bsd.init.mk>
15214501Srpaulo
16214501SrpauloPROG=		loader.kboot
17214501SrpauloNEWVERSWHAT=	"kboot loader" ${MACHINE_ARCH}
18214501SrpauloINSTALLFLAGS=	-b
19214501Srpaulo
20214501Srpaulo# Architecture-specific loader code
21214501SrpauloSRCS=	\
22214501Srpaulo		bootinfo.c \
23214501Srpaulo		conf.c \
24252726Srpaulo		hostcons.c \
25214501Srpaulo		hostdisk.c \
26214501Srpaulo		hostfs.c \
27214501Srpaulo		init.c \
28214501Srpaulo		kbootfdt.c \
29214501Srpaulo		main.c \
30214501Srpaulo		seg.c \
31214501Srpaulo		util.c \
32214501Srpaulo		vers.c
33214501Srpaulo
34214501Srpaulo.if ${MK_LOADER_ZFS} != "no"
35214501SrpauloCFLAGS+=	-I${ZFSSRC}
36214501SrpauloCFLAGS+=        -I${SYSDIR}/contrib/openzfs/include
37214501SrpauloCFLAGS+=        -I${SYSDIR}/contrib/openzfs/include/os/freebsd/zfs
38214501SrpauloHAVE_ZFS=yes
39214501Srpaulo.endif
40214501Srpaulo
41214501SrpauloHELP_FILENAME=	loader.help.kboot
42214501Srpaulo
43214501Srpaulo.include	"${BOOTSRC}/fdt.mk"
44214501Srpaulo
45214501Srpaulo# We share bootinfo.c with efi
46214501Srpaulo.PATH:		${BOOTSRC}/efi/loader
47214501Srpaulo
48214501Srpaulo# Note: Since we're producing a userland binary, we key off of MACHINE_ARCH
49214501Srpaulo# instead of the more normal MACHINE since the changes between different flavors
50214501Srpaulo# of MACHINE_ARCH are large enough in Linux that it's easier that way.
51214501Srpaulo.PATH:	${.CURDIR}/arch/${MACHINE_ARCH}
52214501Srpaulo.include "${.CURDIR}/arch/${MACHINE_ARCH}/Makefile.inc"
53214501Srpaulo
54214501Srpaulo# Bring in our ldscript
55214501SrpauloLDFLAGS=	-nostdlib -static -T ${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}.ldscript
56214501Srpaulo
57214501Srpaulo# Always add MI sources
58214501Srpaulo.include	"${BOOTSRC}/loader.mk"
59214501SrpauloCFLAGS+=	-I${.CURDIR} -I${.CURDIR}/arch/${MACHINE_ARCH}
60214501Srpaulo
61214501SrpauloCFLAGS+=	-Wall
62214501Srpaulo
63214501SrpauloDPADD=		${LDR_INTERP} ${LIBOFW} ${LIBSAFDT} ${LIBSA} ${LIBKBOOT}
64214501SrpauloLDADD=		${LDR_INTERP} ${LIBOFW} ${LIBSAFDT} ${LIBSA} ${LIBKBOOT}
65214501Srpaulo
66214501Srpaulo# Add our own lua bindings until they are universal
67214501Srpaulo.if ${LOADER_INTERP} == "lua"
68214501SrpauloSRCS+=		\
69252726Srpaulo		lua_bindings.c
70252726SrpauloCFLAGS.lua_bindings.c+=  -I${FLUALIB}/libhash
71214501Srpaulo.endif
72214501Srpaulo
73214501Srpaulo.include <bsd.prog.mk>
74214501Srpaulo