Makefile revision 83368
189857Sobrien# $FreeBSD: head/sys/boot/pc98/loader/Makefile 83368 2001-09-12 10:25:50Z ru $
2218822Sdim
389857SobrienBASE=		loader
4218822SdimPROG=		${BASE}
589857Sobrien#NOMAN=
689857SobrienSTRIP=
789857SobrienNEWVERSWHAT=	"bootstrap loader" pc98
8BINDIR?=	/boot
9INSTALLFLAGS=	-b
10
11CFLAGS+=	-DPC98
12
13# architecture-specific loader code
14SRCS=		main.c conf.c
15.PATH:		${.CURDIR}/../../i386/loader
16
17# Enable PXE TFTP or NFS support, not both.
18.if defined(LOADER_TFTP_SUPPORT)
19CFLAGS+=	-DLOADER_TFTP_SUPPORT
20.else
21CFLAGS+=	-DLOADER_NFS_SUPPORT
22.endif
23
24# Enable PnP and ISA-PnP code.
25HAVE_PNP=	yes
26HAVE_ISABUS=	yes
27
28.if !defined(NOFORTH)
29# Enable BootForth
30BOOT_FORTH=	yes
31CFLAGS+=	-DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386
32.if exists(${.OBJDIR}/../../ficl/libficl.a)
33LIBFICL=	${.OBJDIR}/../../ficl/libficl.a
34.else
35LIBFICL=	${.CURDIR}/../../ficl/libficl.a
36.endif
37.endif
38
39# Always add MI sources 
40.PATH:		${.CURDIR}/../../common
41.include	<${.CURDIR}/../../common/Makefile.inc>
42CFLAGS+=	-I${.CURDIR}/../../common
43CFLAGS+=	-I${.CURDIR}/../../.. -I. -I${.CURDIR}/../../i386
44
45CLEANFILES+=	vers.c vers.o ${BASE}.list ${BASE}.bin ${BASE}.sym ${BASE}.help
46
47CFLAGS+=	-Wall
48LDFLAGS=	-nostdlib -static -Ttext 0x0
49
50# pc98 standalone support library
51LIBPC98=	${.OBJDIR}/../libpc98/libpc98.a
52CFLAGS+=	-I${.CURDIR}/..
53
54# where to get libstand from
55#XXX need a better way to do this
56LIBSTAND=	${.CURDIR}/../../../../lib/libstand/libstand.a
57.if !exists(${LIBSTAND})
58LIBSTAND=	${.OBJDIR}/../../../../lib/libstand/libstand.a
59.if !exists(${LIBSTAND})
60LIBSTAND=	-lstand
61.endif
62.endif
63CFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/
64
65# BTX components
66.if exists(${.OBJDIR}/../btx)
67BTXDIR=		${.OBJDIR}/../btx
68.else
69BTXDIR=		${.CURDIR}/../btx
70.endif
71BTXLDR=		${BTXDIR}/btxldr/btxldr
72BTXKERN=	${BTXDIR}/btx/btx
73BTXCRT=		${BTXDIR}/lib/crt0.o
74CFLAGS+=	-I${.CURDIR}/../btx/lib
75
76# BTX is expecting ELF components
77CFLAGS+=	-elf
78
79# Debug me!
80#CFLAGS+=	-g
81#LDFLAGS+=	-g
82
83vers.o:	${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../i386/loader/version
84	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../i386/loader/version ${NEWVERSWHAT}
85	${CC} -c vers.c
86
87${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} ${BASE}.help
88	btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \
89		-b ${BTXKERN} ${BASE}.bin
90#	/usr/bin/kzip ${.TARGET}
91#	mv ${.TARGET}.kz ${.TARGET}
92
93${BASE}.bin: ${BASE}.sym
94	cp ${.ALLSRC} ${.TARGET}
95	strip -R .comment -R .note ${.TARGET}
96
97${BASE}.help: help.common help.i386
98	cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
99
100beforeinstall:
101.if exists(${.OBJDIR}/loader.help)
102	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
103		${.OBJDIR}/${BASE}.help ${DESTDIR}/boot
104.else
105	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
106		${.CURDIR}/${BASE}.help ${DESTDIR}/boot
107.endif
108.if !exists(${DESTDIR}/boot/loader.rc)
109	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
110		${.CURDIR}/../../forth/loader.rc ${DESTDIR}/boot
111.endif
112	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
113		${.CURDIR}/../../forth/loader.4th ${DESTDIR}/boot
114	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
115		${.CURDIR}/../../forth/support.4th ${DESTDIR}/boot
116	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
117		${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults
118
119.include <${.CURDIR}/../Makefile.inc>
120
121# Cannot use ${OBJS} above this line
122.include <bsd.prog.mk>
123
124${BASE}.sym: ${OBJS} ${LIBPC98} ${LIBSTAND} ${LIBFICL} vers.o
125	${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
126		${LIBFICL} ${LIBPC98} ${LIBSTAND}
127
128# If it's not there, don't consider it a target
129.if exists(${.CURDIR}/../../../i386/include)
130beforedepend ${OBJS}: machine
131
132machine:
133	ln -sf ${.CURDIR}/../../../i386/include machine
134
135.endif
136
137CLEANFILES+=	machine
138