Makefile revision 42446
1103285Sikob# $Id: Makefile,v 1.24 1999/01/09 02:38:40 msmith Exp $
2103285Sikob
3103285SikobBASE=		loader
4103285SikobPROG=		${BASE}
5103285SikobNOMAN=
6103285SikobSTRIP=
7103285SikobNEWVERSWHAT=	"bootstrap loader"
8103285SikobBINDIR?=	/boot
9103285Sikob
10103285Sikob# architecture-specific loader code
11103285SikobSRCS=		main.c conf.c
12103285Sikob
13103285Sikob# Enable PnP and ISA-PnP code.
14103285SikobHAVE_PNP=	yes
15103285SikobHAVE_ISABUS=	yes
16103285Sikob
17103285Sikob# Enable BootForth
18103285SikobBOOT_FORTH=	yes
19103285SikobCFLAGS+=	-DBOOT_FORTH -I${.CURDIR}/../../ficl
20103285Sikob.if exists(${.OBJDIR}/../../ficl/libficl.a)
21103285SikobLIBFICL=	${.OBJDIR}/../../ficl/libficl.a
22103285Sikob.else
23103285SikobLIBFICL=	${.CURDIR}/../../ficl/libficl.a
24103285Sikob.endif
25103285Sikob
26103285Sikob# Always add MI sources 
27103285Sikob.PATH:		${.CURDIR}/../../common
28103285Sikob.include	<${.CURDIR}/../../common/Makefile.inc>
29103285SikobCFLAGS+=	-I${.CURDIR}/../../common
30103285SikobCFLAGS+=	-I${.CURDIR}/../../.. -I.
31103285Sikob
32103285SikobCLEANFILES+=	vers.c vers.o ${BASE}.list ${BASE}.bin ${BASE}.sym ${BASE}.help
33103285Sikob
34103285SikobCFLAGS+=	-Wall
35103285SikobLDFLAGS=	-nostdlib -static -Ttext 0x1000
36103285Sikob
37103285Sikob# i386 standalone support library
38103285SikobLIBI386=	${.OBJDIR}/../libi386/libi386.a
39103285SikobCFLAGS+=	-I${.CURDIR}/..
40103285Sikob
41103285Sikob# where to get libstand from
42103285SikobLIBSTAND=	-lstand
43103285Sikob#LIBSTAND=	${.CURDIR}/../../../lib/libstand/libstand.a
44103285Sikob#CFLAGS+=	-I${.CURDIR}/../../../lib/libstand/
45103285Sikob
46103285Sikob# BTX components
47103285Sikob.if exists(${.OBJDIR}/../btx)
48103285SikobBTXDIR=		${.OBJDIR}/../btx
49103285Sikob.else
50103285SikobBTXDIR=		${.CURDIR}/../btx
51103285Sikob.endif
52103285SikobBTXLDR=		${BTXDIR}/btxldr/btxldr
53103285SikobBTXKERN=	${BTXDIR}/btx/btx
54103285SikobBTXCRT=		${BTXDIR}/lib/crt0.o
55103285SikobCFLAGS+=	-I${.CURDIR}/../btx/lib
56103285Sikob
57103285Sikob# BTX is expecting ELF components
58103285SikobCFLAGS+=	-elf
59103285Sikob
60103285Sikob# New linker set code
61103285SikobCFLAGS+=	-DNEW_LINKER_SET
62103285Sikob
63108276Ssimokawa# Debug me!
64103285Sikob#CFLAGS+=	-g
65103285Sikob#LDFLAGS+=	-g
66103285Sikob
67103285Sikobvers.o:
68103285Sikob	sh ${.CURDIR}/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
69103285Sikob	${CC} -c vers.c
70103285Sikob
71${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} ${BASE}.help
72	btxld -v -f aout -e 0x100000 -o ${.TARGET} -l ${BTXLDR} -b ${BTXKERN} \
73		${BASE}.bin
74	/usr/bin/kzip ${.TARGET}
75	mv ${.TARGET}.kz ${.TARGET}
76
77${BASE}.bin: ${BASE}.sym
78	cp ${.ALLSRC} ${.TARGET}
79	strip ${.TARGET}
80
81${BASE}.help: help.common help.i386
82	perl ${.CURDIR}/../../common/merge_help.pl ${.ALLSRC} > ${.TARGET}
83
84beforeinstall:
85.if exists(${.OBJDIR}/loader.help)
86	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
87		${.OBJDIR}/${BASE}.help ${DESTDIR}/boot
88.else
89	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
90		${.CURDIR}/${BASE}.help ${DESTDIR}/boot
91.endif
92
93# Cannot use ${OBJS} above this line
94.include <bsd.prog.mk>
95
96${BASE}.sym: ${OBJS} ${LIBI386} ${LIBSTAND} ${LIBFICL} vers.o
97	${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
98		${LIBFICL} ${LIBSTAND} ${LIBI386} ${LIBSTAND}
99
100# If it's not there, don't consider it a target
101.if exists(${.CURDIR}/../../../i386/include)
102beforedepend ${OBJS}: machine
103
104machine:
105	ln -sf ${.CURDIR}/../../../i386/include machine
106
107.endif
108
109CLEANFILES+=	machine
110
111
112