150477Speter# $FreeBSD$
243561Skato
3156813Sru.include <bsd.own.mk>
4188895SruMK_SSP=		no
5156813Sru
6231387SnyanLOADER?=	loader
7231387SnyanPROG=		${LOADER}.sym
8125625SnyanINTERNALPROG=
948351SpeterNEWVERSWHAT=	"bootstrap loader" pc98
1043561Skato
1143561Skato# architecture-specific loader code
12125563SnyanSRCS=		main.c conf.c vers.c
1361064Snyan.PATH:		${.CURDIR}/../../i386/loader
1443561Skato
1559228Snyan# Enable PXE TFTP or NFS support, not both.
1668358Snyan.if defined(LOADER_TFTP_SUPPORT)
1768358SnyanCFLAGS+=	-DLOADER_TFTP_SUPPORT
1868358Snyan.else
1959228SnyanCFLAGS+=	-DLOADER_NFS_SUPPORT
2068358Snyan.endif
2159228Snyan
22190046Snyan# Include bcache code.
23163893SmarcelHAVE_BCACHE=	yes
24163893Smarcel
2543561Skato# Enable PnP and ISA-PnP code.
2643561SkatoHAVE_PNP=	yes
2743561SkatoHAVE_ISABUS=	yes
2843561Skato
29156813Sru.if ${MK_FORTH} != "no"
3043561Skato# Enable BootForth
3143561SkatoBOOT_FORTH=	yes
3253688SnyanCFLAGS+=	-DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386
3343561SkatoLIBFICL=	${.OBJDIR}/../../ficl/libficl.a
3443561Skato.endif
3543561Skato
3685060Snyan.if defined(LOADER_BZIP2_SUPPORT)
3785060SnyanCFLAGS+=	-DLOADER_BZIP2_SUPPORT
3885060Snyan.endif
3985060Snyan.if !defined(LOADER_NO_GZIP_SUPPORT)
4085060SnyanCFLAGS+=	-DLOADER_GZIP_SUPPORT
4185060Snyan.endif
4285060Snyan
43231387Snyan# Always add MI sources
4443561Skato.PATH:		${.CURDIR}/../../common
45125563Snyan.include	"${.CURDIR}/../../common/Makefile.inc"
4643561SkatoCFLAGS+=	-I${.CURDIR}/../../common
47125563SnyanCFLAGS+=	-I${.CURDIR}/../../i386
48125563SnyanCFLAGS+=	-I.
4943561Skato
50231387SnyanCLEANFILES=	vers.c ${LOADER} ${LOADER}.bin loader.help
5143561Skato
5243561SkatoCFLAGS+=	-Wall
53125625SnyanLDFLAGS=	-static -Ttext 0x0
5443561Skato
5543561Skato# pc98 standalone support library
5643561SkatoLIBPC98=	${.OBJDIR}/../libpc98/libpc98.a
5743561SkatoCFLAGS+=	-I${.CURDIR}/..
5843561Skato
5943561Skato# BTX components
6043561SkatoCFLAGS+=	-I${.CURDIR}/../btx/lib
6143561Skato
6243561Skato# Debug me!
6343561Skato#CFLAGS+=	-g
6443561Skato#LDFLAGS+=	-g
6543561Skato
66125563Snyan# Pick up ../Makefile.inc early.
67125563Snyan.include <bsd.init.mk>
68125563Snyan
69125563Snyanvers.c:	${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../i386/loader/version
7048351Speter	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../i386/loader/version ${NEWVERSWHAT}
7143561Skato
72231387Snyan${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN}
7358871Skato	btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \
74231387Snyan		-b ${BTXKERN} ${LOADER}.bin
7543561Skato
76231387Snyan${LOADER}.bin: ${LOADER}.sym
7743561Skato	cp ${.ALLSRC} ${.TARGET}
7870082Skato	strip -R .comment -R .note ${.TARGET}
7943561Skato
80125563Snyanloader.help: help.common help.pc98
8143561Skato	cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
8243561Skato
83231387SnyanFILES=	${LOADER}
84231387Snyan# XXX INSTALLFLAGS_loader= -b
85231387SnyanFILESMODE_${LOADER}= ${BINMODE} -b
86231387Snyan
87231387Snyan.PATH: ${.CURDIR}/../../forth
88231387SnyanFILES+=	loader.help loader.4th support.4th loader.conf
89151882SnyanFILES+= screen.4th frames.4th beastie.4th
90222417SjulianFILES+= brand.4th check-password.4th color.4th delay.4th
91242688SdteskeFILES+= menu.4th menu-commands.4th menusets.4th shortcuts.4th version.4th
9295450SnyanFILESDIR_loader.conf=	/boot/defaults
9395450Snyan
9453206Snyan.if !exists(${DESTDIR}/boot/loader.rc)
95151882SnyanFILES+=	${.CURDIR}/../../i386/loader/loader.rc
9653206Snyan.endif
97222417Sjulian.if !exists(${DESTDIR}/boot/menu.rc)
98222417SjulianFILES+= menu.rc
99222417Sjulian.endif
100222417Sjulian
101126969Snyan# XXX crt0.o needs to be first for pxeboot(8) to work
102231387SnyanOBJS=	${BTXCRT}
10358871Skato
104126969SnyanDPADD=	${LIBFICL} ${LIBPC98} ${LIBSTAND}
105210459SnyanLDADD=	${LIBFICL} ${LIBPC98} ${LIBSTAND}
106126969Snyan
107125563Snyan.include <bsd.prog.mk>
108