Makefile revision 44859
1# $Id: Makefile,v 1.3 1999/03/10 13:41:44 kato Exp $
2
3BASE=		loader
4PROG=		${BASE}
5MAN8=		${.CURDIR}/../../i386/loader/loader.8
6#NOMAN=
7STRIP=
8NEWVERSWHAT=	"bootstrap loader"
9BINDIR?=	/boot
10
11CFLAGS+=	-DPC98
12
13# architecture-specific loader code
14SRCS=		main.c conf.c
15.PATH:		${.CURDIR}/../../i386/loader
16
17# Enable PnP and ISA-PnP code.
18HAVE_PNP=	yes
19HAVE_ISABUS=	yes
20
21# Enable BootForth
22BOOT_FORTH=	yes
23CFLAGS+=	-DBOOT_FORTH -I${.CURDIR}/../../ficl
24.if exists(${.OBJDIR}/../../ficl/libficl.a)
25LIBFICL=	${.OBJDIR}/../../ficl/libficl.a
26.else
27LIBFICL=	${.CURDIR}/../../ficl/libficl.a
28.endif
29
30# Always add MI sources 
31.PATH:		${.CURDIR}/../../common
32.include	<${.CURDIR}/../../common/Makefile.inc>
33CFLAGS+=	-I${.CURDIR}/../../common
34CFLAGS+=	-I${.CURDIR}/../../.. -I. -I${.CURDIR}/../../i386
35
36CLEANFILES+=	vers.c vers.o ${BASE}.list ${BASE}.bin ${BASE}.sym ${BASE}.help
37
38CFLAGS+=	-Wall
39LDFLAGS=	-nostdlib -static -Ttext 0x0
40
41# pc98 standalone support library
42LIBPC98=	${.OBJDIR}/../libpc98/libpc98.a
43CFLAGS+=	-I${.CURDIR}/..
44
45# where to get libstand from
46LIBSTAND=	-lstand
47#LIBSTAND=	${.CURDIR}/../../../lib/libstand/libstand.a
48#CFLAGS+=	-I${.CURDIR}/../../../lib/libstand/
49
50# BTX components
51.if exists(${.OBJDIR}/../btx)
52BTXDIR=		${.OBJDIR}/../btx
53.else
54BTXDIR=		${.CURDIR}/../btx
55.endif
56BTXLDR=		${BTXDIR}/btxldr/btxldr
57BTXKERN=	${BTXDIR}/btx/btx
58BTXCRT=		${BTXDIR}/lib/crt0.o
59CFLAGS+=	-I${.CURDIR}/../btx/lib
60
61# BTX is expecting ELF components
62CFLAGS+=	-elf
63
64# New linker set code
65CFLAGS+=	-DNEW_LINKER_SET
66
67# Debug me!
68#CFLAGS+=	-g
69#LDFLAGS+=	-g
70
71vers.o:
72	sh ${.CURDIR}/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
73	${CC} -c vers.c
74
75${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} ${BASE}.help
76	btxld -v -f aout -e 0x100000 -o ${.TARGET} -l ${BTXLDR} -b ${BTXKERN} \
77		${BASE}.bin
78#	/usr/bin/kzip ${.TARGET}
79#	mv ${.TARGET}.kz ${.TARGET}
80
81${BASE}.bin: ${BASE}.sym
82	cp ${.ALLSRC} ${.TARGET}
83	strip ${.TARGET}
84
85${BASE}.help: help.common help.pc98
86	cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
87
88beforeinstall:
89.if exists(${DESTDIR}/boot/loader)
90	mv ${DESTDIR}/boot/loader ${DESTDIR}/boot/loader.old
91.endif
92.if exists(${.OBJDIR}/loader.help)
93	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
94		${.OBJDIR}/${BASE}.help ${DESTDIR}/boot
95.else
96	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
97		${.CURDIR}/${BASE}.help ${DESTDIR}/boot
98.endif
99	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
100		${.CURDIR}/../../forth/loader.4th ${DESTDIR}/boot
101	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
102		${.CURDIR}/../../forth/support.4th ${DESTDIR}/boot
103	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
104		${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults
105
106# Cannot use ${OBJS} above this line
107.include <bsd.prog.mk>
108
109${BASE}.sym: ${OBJS} ${LIBPC98} ${LIBSTAND} ${LIBFICL} vers.o
110	${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
111		${LIBFICL} ${LIBSTAND} ${LIBPC98} ${LIBSTAND}
112
113# If it's not there, don't consider it a target
114.if exists(${.CURDIR}/../../../i386/include)
115beforedepend ${OBJS}: machine
116
117machine:
118	ln -sf ${.CURDIR}/../../../i386/include machine
119
120.endif
121
122CLEANFILES+=	machine
123
124
125