Makefile revision 172940
1214501Srpaulo# $FreeBSD: head/sys/boot/i386/gptboot/Makefile 172940 2007-10-24 21:33:00Z jhb $
2214501Srpaulo
3214501Srpaulo.PATH:		${.CURDIR}/../boot2
4214501Srpaulo
5214501SrpauloFILES=		gptboot
6214501Srpaulo
7252190SrpauloNM?=		nm
8252190Srpaulo
9214501SrpauloBOOT_COMCONSOLE_PORT?= 0x3f8
10214501SrpauloBOOT_COMCONSOLE_SPEED?= 9600
11214501SrpauloB2SIOFMT?=	0x3
12214501Srpaulo
13214501SrpauloREL1=	0x700
14214501SrpauloORG1=	0x7c00
15214501SrpauloORG2=	0x0
16214501Srpaulo
17214501Srpaulo# Decide level of UFS support.
18214501SrpauloGPTBOOT_UFS?=	UFS1_AND_UFS2
19214501Srpaulo#GPTBOOT_UFS?=	UFS2_ONLY
20214501Srpaulo#GPTBOOT_UFS?=	UFS1_ONLY
21214501Srpaulo
22214501SrpauloCFLAGS=	-Os \
23214501Srpaulo	-fno-guess-branch-probability \
24252190Srpaulo	-fomit-frame-pointer \
25214501Srpaulo	-fno-unit-at-a-time \
26214501Srpaulo	-mno-align-long-strings \
27214501Srpaulo	-mrtd \
28214501Srpaulo	-mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 \
29252190Srpaulo	-D${GPTBOOT_UFS} \
30214501Srpaulo	-DSIOPRT=${BOOT_COMCONSOLE_PORT} \
31214501Srpaulo	-DSIOFMT=${B2SIOFMT} \
32214501Srpaulo	-DSIOSPD=${BOOT_COMCONSOLE_SPEED} \
33214501Srpaulo	-I${.CURDIR}/../../common \
34214501Srpaulo	-I${.CURDIR}/../btx/lib \
35214501Srpaulo	-I${.CURDIR}/../boot2 \
36252190Srpaulo	-Wall -Waggregate-return -Wbad-function-cast -Wcast-align \
37214501Srpaulo	-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
38214501Srpaulo	-Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \
39214501Srpaulo	-Winline --param max-inline-insns-single=100
40214501Srpaulo
41214501SrpauloLDFLAGS=-static -N --gc-sections
42214501Srpaulo
43214501Srpaulo# Pick up ../Makefile.inc early.
44214501Srpaulo.include <bsd.init.mk>
45214501Srpaulo
46214501SrpauloCLEANFILES=	gptboot
47214501Srpaulo
48214501Srpaulogptboot: gptldr.bin gptboot.bin ${BTXKERN}
49214501Srpaulo	btxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l gptldr.bin \
50214501Srpaulo	    -o ${.TARGET} gptboot.bin
51252190Srpaulo
52252190SrpauloCLEANFILES+=	gptldr.bin gptldr.out gptldr.o
53252190Srpaulo
54252190Srpaulogptldr.bin: gptldr.out
55252190Srpaulo	objcopy -S -O binary gptldr.out ${.TARGET}
56252190Srpaulo
57252190Srpaulogptldr.out: gptldr.o
58252190Srpaulo	${LD} ${LDFLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} gptldr.o
59252190Srpaulo
60252190SrpauloCLEANFILES+=	gptboot.bin gptboot.out gptboot.o sio.o
61252190Srpaulo
62252190Srpaulogptboot.bin: gptboot.out
63252190Srpaulo	objcopy -S -O binary gptboot.out ${.TARGET}
64252190Srpaulo
65214501Srpaulogptboot.out: ${BTXCRT} gptboot.o sio.o
66214501Srpaulo	${LD} ${LDFLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC}
67214501Srpaulo
68214501Srpaulogptboot.o: ${.CURDIR}/../../common/ufsread.c
69214501Srpaulo
70214501Srpaulo.if ${MACHINE_ARCH} == "amd64"
71214501Srpaulobeforedepend gptboot.o: machine
72214501SrpauloCLEANFILES+=	machine
73214501Srpaulomachine:
74214501Srpaulo	ln -sf ${.CURDIR}/../../../i386/include machine
75214501Srpaulo.endif
76214501Srpaulo
77214501Srpaulo.include <bsd.prog.mk>
78214501Srpaulo