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