Makefile revision 56994
138494Sobrien# $FreeBSD: head/sys/boot/pc98/loader/Makefile 56994 2000-02-05 02:21:31Z kato $
238494Sobrien
338494SobrienBASE=		loader
438494SobrienPROG=		${BASE}
5174294SobrienMAN5=		../../forth/loader.conf.5
638494SobrienMAN8=		../../i386/loader/loader.8 ../../forth/loader.4th.8
742629Sobrien#NOMAN=
851292SobrienSTRIP=
942629SobrienNEWVERSWHAT=	"bootstrap loader" pc98
1042629SobrienBINDIR?=	/boot
1151292Sobrien
1251292SobrienCFLAGS+=	-DPC98
1338494Sobrien
1438494Sobrien# architecture-specific loader code
1538494SobrienSRCS=		main.c conf.c
1638494Sobrien.PATH:		${.CURDIR}/../../i386/loader
1738494Sobrien
1838494Sobrien# Enable PnP and ISA-PnP code.
1938494SobrienHAVE_PNP=	yes
2038494SobrienHAVE_ISABUS=	yes
2138494Sobrien
2238494Sobrien.if !defined(NOFORTH)
2338494Sobrien# Enable BootForth
2438494SobrienBOOT_FORTH=	yes
2538494SobrienCFLAGS+=	-DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386
2638494Sobrien.if exists(${.OBJDIR}/../../ficl/libficl.a)
2738494SobrienLIBFICL=	${.OBJDIR}/../../ficl/libficl.a
2838494Sobrien.else
2938494SobrienLIBFICL=	${.CURDIR}/../../ficl/libficl.a
3038494Sobrien.endif
3138494Sobrien.endif
3238494Sobrien
3338494Sobrien# Always add MI sources 
3438494Sobrien.PATH:		${.CURDIR}/../../common
3538494Sobrien.include	<${.CURDIR}/../../common/Makefile.inc>
3638494SobrienCFLAGS+=	-I${.CURDIR}/../../common
3738494SobrienCFLAGS+=	-I${.CURDIR}/../../.. -I. -I${.CURDIR}/../../i386
3838494Sobrien
3938494SobrienCLEANFILES+=	vers.c vers.o ${BASE}.list ${BASE}.bin ${BASE}.sym ${BASE}.help
4038494Sobrien
4138494SobrienCFLAGS+=	-Wall
4238494SobrienLDFLAGS=	-nostdlib -static -Ttext 0x0
4338494Sobrien
4438494Sobrien# pc98 standalone support library
4538494SobrienLIBPC98=	${.OBJDIR}/../libpc98/libpc98.a
4638494SobrienCFLAGS+=	-I${.CURDIR}/..
4738494Sobrien
4838494Sobrien# where to get libstand from
4938494SobrienLIBSTAND=	-lstand
5038494Sobrien#LIBSTAND=	${.CURDIR}/../../../lib/libstand/libstand.a
5138494Sobrien#CFLAGS+=	-I${.CURDIR}/../../../lib/libstand/
5238494Sobrien
5338494Sobrien# BTX components
54174294Sobrien.if exists(${.OBJDIR}/../btx)
55174294SobrienBTXDIR=		${.OBJDIR}/../btx
56174294Sobrien.else
57174294SobrienBTXDIR=		${.CURDIR}/../btx
5838494Sobrien.endif
5938494SobrienBTXLDR=		${BTXDIR}/btxldr/btxldr
6038494SobrienBTXKERN=	${BTXDIR}/btx/btx
6138494SobrienBTXCRT=		${BTXDIR}/lib/crt0.o
6238494SobrienCFLAGS+=	-I${.CURDIR}/../btx/lib
6338494Sobrien
6438494Sobrien# BTX is expecting ELF components
6538494SobrienCFLAGS+=	-elf
6638494Sobrien
6738494Sobrien# New linker set code
6838494SobrienCFLAGS+=	-DNEW_LINKER_SET
6982794Sobrien
7082794Sobrien# Debug me!
7182794Sobrien#CFLAGS+=	-g
7238494Sobrien#LDFLAGS+=	-g
7338494Sobrien
7438494Sobrienvers.o:	${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../i386/loader/version
7538494Sobrien	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../i386/loader/version ${NEWVERSWHAT}
7638494Sobrien	${CC} -c vers.c
7738494Sobrien
78174294Sobrien${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} ${BASE}.help
79174294Sobrien	btxld -v -f aout -e 0x100000 -o ${.TARGET} -l ${BTXLDR} -b ${BTXKERN} \
8038494Sobrien		${BASE}.bin
8138494Sobrien#	/usr/bin/kzip ${.TARGET}
8238494Sobrien#	mv ${.TARGET}.kz ${.TARGET}
8338494Sobrien
8438494Sobrien${BASE}.bin: ${BASE}.sym
8538494Sobrien	cp ${.ALLSRC} ${.TARGET}
8638494Sobrien	strip ${.TARGET}
8738494Sobrien
8838494Sobrien${BASE}.help: help.common help.i386
8938494Sobrien	cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
9038494Sobrien
91174294Sobrienbeforeinstall:
92174294Sobrien.if exists(${DESTDIR}/boot/loader)
93119679Smbr	mv ${DESTDIR}/boot/loader ${DESTDIR}/boot/loader.old
9438494Sobrien.endif
9538494Sobrien.if exists(${.OBJDIR}/loader.help)
9638494Sobrien	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
9738494Sobrien		${.OBJDIR}/${BASE}.help ${DESTDIR}/boot
9838494Sobrien.else
9938494Sobrien	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
100119679Smbr		${.CURDIR}/${BASE}.help ${DESTDIR}/boot
10138494Sobrien.endif
10238494Sobrien.if !exists(${DESTDIR}/boot/loader.rc)
10338494Sobrien	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
10438494Sobrien		${.CURDIR}/../../forth/loader.rc ${DESTDIR}/boot
10538494Sobrien.endif
10638494Sobrien	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
10738494Sobrien		${.CURDIR}/../../forth/loader.4th ${DESTDIR}/boot
10842629Sobrien	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
10938494Sobrien		${.CURDIR}/../../forth/support.4th ${DESTDIR}/boot
11038494Sobrien	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
11138494Sobrien		${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults
11238494Sobrien
11338494Sobrien# Cannot use ${OBJS} above this line
11438494Sobrien.include <bsd.prog.mk>
11538494Sobrien
11638494Sobrien${BASE}.sym: ${OBJS} ${LIBPC98} ${LIBSTAND} ${LIBFICL} vers.o
117	${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
118		${LIBFICL} ${LIBSTAND} ${LIBPC98} ${LIBSTAND}
119
120# If it's not there, don't consider it a target
121.if exists(${.CURDIR}/../../../i386/include)
122beforedepend ${OBJS}: machine
123
124machine:
125	ln -sf ${.CURDIR}/../../../i386/include machine
126
127.endif
128
129CLEANFILES+=	machine
130
131
132