Makefile revision 59087
1139825Simp# $FreeBSD: head/sys/boot/i386/loader/Makefile 59087 2000-04-08 01:22:14Z ps $
21541Srgrimes
31541SrgrimesBASE=		loader
41541SrgrimesPROG=		${BASE}
51541SrgrimesMAN5=		../../forth/loader.conf.5
61541SrgrimesMAN8=		loader.8 ../../forth/loader.4th.8
71541Srgrimes#NOMAN=
81541SrgrimesSTRIP=
91541SrgrimesNEWVERSWHAT=	"bootstrap loader" i386
101541SrgrimesBINDIR?=	/boot
111541Srgrimes
121541Srgrimes# architecture-specific loader code
131541SrgrimesSRCS=		main.c conf.c pxe.c
141541Srgrimes.PATH:		${.CURDIR}/../libi386
151541Srgrimes
161541Srgrimes# Enable PXE TFTP or NFS support, not both.
171541SrgrimesCFLAGS+=	-DLOADER_NFS_SUPPORT
181541Srgrimes#CFLAGS+=	-DLOADER_TFTP_SUPPORT
191541Srgrimes
201541Srgrimes# Enable PnP and ISA-PnP code.
211541SrgrimesHAVE_PNP=	yes
221541SrgrimesHAVE_ISABUS=	yes
231541Srgrimes
241541Srgrimes.if !defined(NOFORTH)
251541Srgrimes# Enable BootForth
261541SrgrimesBOOT_FORTH=	yes
271541SrgrimesCFLAGS+=	-DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386
281541Srgrimes.if exists(${.OBJDIR}/../../ficl/libficl.a)
291541SrgrimesLIBFICL=	${.OBJDIR}/../../ficl/libficl.a
301541Srgrimes.else
311541SrgrimesLIBFICL=	${.CURDIR}/../../ficl/libficl.a
321817Sdg.endif
331541Srgrimes.endif
341541Srgrimes
351541Srgrimes# Always add MI sources 
361541Srgrimes.PATH:		${.CURDIR}/../../common
371541Srgrimes.include	<${.CURDIR}/../../common/Makefile.inc>
381541SrgrimesCFLAGS+=	-I${.CURDIR}/../../common
395455SdgCFLAGS+=	-I${.CURDIR}/../../.. -I.
401541Srgrimes
411541SrgrimesCLEANFILES+=	vers.c vers.o ${BASE}.list ${BASE}.bin ${BASE}.sym ${BASE}.help
421541Srgrimes
431541SrgrimesCFLAGS+=	-Wall
441541SrgrimesLDFLAGS=	-nostdlib -static -Ttext 0x0
455455Sdg
465455Sdg# i386 standalone support library
475455SdgLIBI386=	${.OBJDIR}/../libi386/libi386.a
481541SrgrimesCFLAGS+=	-I${.CURDIR}/..
495455Sdg
501541Srgrimes# where to get libstand from
511541SrgrimesLIBSTAND=	-lstand
521541Srgrimes#LIBSTAND=	${.CURDIR}/../../../../lib/libstand/libstand.a
531541SrgrimesCFLAGS+=	-I${.CURDIR}/../../../../lib/libstand/
541541Srgrimes
551541Srgrimes# BTX components
561541Srgrimes.if exists(${.OBJDIR}/../btx)
571541SrgrimesBTXDIR=		${.OBJDIR}/../btx
581541Srgrimes.else
591541SrgrimesBTXDIR=		${.CURDIR}/../btx
601541Srgrimes.endif
611541SrgrimesBTXLDR=		${BTXDIR}/btxldr/btxldr
621541SrgrimesBTXKERN=	${BTXDIR}/btx/btx
631541SrgrimesBTXCRT=		${BTXDIR}/lib/crt0.o
641541SrgrimesCFLAGS+=	-I${.CURDIR}/../btx/lib
65116226Sobrien
66116226Sobrien# BTX is expecting ELF components
67116226SobrienCFLAGS+=	-elf
681541Srgrimes
691541Srgrimes# New linker set code
7087157SluigiCFLAGS+=	-DNEW_LINKER_SET
71168395Spjd
7276166Smarkm# Debug me!
7376166Smarkm#CFLAGS+=	-g
742112Swollman#LDFLAGS+=	-g
756129Sdg
76188964Srwatsonvers.o:	${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
771541Srgrimes	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
781541Srgrimes	${CC} -c vers.c
7912662Sdg
8012662Sdg${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} ${BASE}.help
8112662Sdg	btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \
8212662Sdg		-b ${BTXKERN} ${BASE}.bin
831541Srgrimes#	/usr/bin/kzip ${.TARGET}
841541Srgrimes#	mv ${.TARGET}.kz ${.TARGET}
8512726Sbde
86168395Spjd${BASE}.bin: ${BASE}.sym
871541Srgrimes	cp ${.ALLSRC} ${.TARGET}
8819830Sdyson	strip ${.TARGET}
8919830Sdyson
9019830Sdyson${BASE}.help: help.common help.i386
91118764Ssilby	cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
9219830Sdyson
932112Swollmanbeforeinstall:
94221853Smdf.if exists(${DESTDIR}/boot/loader)
95221853Smdf	mv ${DESTDIR}/boot/loader ${DESTDIR}/boot/loader.old
96221853Smdf.endif
97246316Smarius.if exists(${.OBJDIR}/loader.help)
98246316Smarius	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
99246316Smarius		${.OBJDIR}/${BASE}.help ${DESTDIR}/boot
100246316Smarius.else
101246926Salc	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
102246316Smarius		${.CURDIR}/${BASE}.help ${DESTDIR}/boot
103246316Smarius.endif
104246316Smarius.if !exists(${DESTDIR}/boot/loader.rc)
105246316Smarius	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
106246316Smarius		${.CURDIR}/../../forth/loader.rc ${DESTDIR}/boot
107246316Smarius.endif
1081541Srgrimes	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
10947841Sdt		${.CURDIR}/../../forth/loader.4th ${DESTDIR}/boot
11047841Sdt	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
111118317Salc		${.CURDIR}/../../forth/support.4th ${DESTDIR}/boot
112118317Salc	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
113118317Salc		${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults
114118317Salc
115118317Salc.include <${.CURDIR}/../Makefile.inc>
11647841Sdt
11747841Sdt# Cannot use ${OBJS} above this line
11847841Sdt.include <bsd.prog.mk>
11947841Sdt
12070480Salfred${BASE}.sym: ${OBJS} ${LIBI386} ${LIBSTAND} ${LIBFICL} vers.o
12147841Sdt	${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
12247841Sdt		${LIBFICL} ${LIBSTAND} ${LIBI386} ${LIBSTAND}
12370480Salfred
12447841Sdt# If it's not there, don't consider it a target
12547841Sdt.if exists(${.CURDIR}/../../../i386/include)
12647841Sdtbeforedepend ${OBJS}: machine
127178933Salc
128178933Salcmachine:
12947841Sdt	ln -sf ${.CURDIR}/../../../i386/include machine
13047841Sdt
13147841Sdt.endif
13247841Sdt
13347841SdtCLEANFILES+=	machine
13447841Sdt