Makefile revision 260497
1169689Skan# $FreeBSD: stable/10/sys/boot/i386/gptzfsboot/Makefile 260497 2014-01-09 23:08:56Z dim $
2169689Skan
3169689Skan.PATH:		${.CURDIR}/../boot2 ${.CURDIR}/../gptboot \
4169689Skan		${.CURDIR}/../zfsboot ${.CURDIR}/../common \
5169689Skan		${.CURDIR}/../../common
6169689Skan
7169689SkanFILES=		gptzfsboot
8169689Skan
9169689SkanNM?=		nm
10169689Skan
11169689SkanBOOT_COMCONSOLE_PORT?= 0x3f8
12169689SkanBOOT_COMCONSOLE_SPEED?= 9600
13169689SkanB2SIOFMT?=	0x3
14169689Skan
15169689SkanREL1=	0x700
16169689SkanORG1=	0x7c00
17169689SkanORG2=	0x0
18169689Skan
19169689SkanCFLAGS=	-DBOOTPROG=\"gptzfsboot\" \
20169689Skan	-O1 \
21169689Skan	-DGPT -DBOOT2 \
22169689Skan	-DSIOPRT=${BOOT_COMCONSOLE_PORT} \
23169689Skan	-DSIOFMT=${B2SIOFMT} \
24169689Skan	-DSIOSPD=${BOOT_COMCONSOLE_SPEED} \
25169689Skan	-I${.CURDIR}/../../common \
26169689Skan	-I${.CURDIR}/../common \
27169689Skan	-I${.CURDIR}/../../zfs \
28169689Skan	-I${.CURDIR}/../../../cddl/boot/zfs \
29169689Skan	-I${.CURDIR}/../btx/lib -I. \
30169689Skan	-I${.CURDIR}/../boot2 \
31169689Skan	-I${.CURDIR}/../../.. \
32169689Skan	-Wall -Waggregate-return -Wbad-function-cast -Wcast-align \
33169689Skan	-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
34169689Skan	-Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \
35169689Skan	-Winline
36169689Skan
37169689SkanCFLAGS.gcc+=	--param max-inline-insns-single=100
38169689Skan
39169689SkanLD_FLAGS=-static -N --gc-sections
40169689Skan
41169689Skan# Pick up ../Makefile.inc early.
42169689Skan.include <bsd.init.mk>
43169689Skan
44169689SkanCLEANFILES=	gptzfsboot
45169689Skan
46169689Skangptzfsboot: gptldr.bin gptzfsboot.bin ${BTXKERN}
47169689Skan	btxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l gptldr.bin \
48169689Skan	    -o ${.TARGET} gptzfsboot.bin
49169689Skan
50169689SkanCLEANFILES+=	gptldr.bin gptldr.out gptldr.o
51169689Skan
52169689Skangptldr.bin: gptldr.out
53169689Skan	objcopy -S -O binary gptldr.out ${.TARGET}
54169689Skan
55169689Skangptldr.out: gptldr.o
56169689Skan	${LD} ${LD_FLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} gptldr.o
57169689Skan
58169689SkanCLEANFILES+=	gptzfsboot.bin gptzfsboot.out zfsboot.o sio.o cons.o \
59169689Skan		drv.o gpt.o util.o
60169689Skan
61169689Skangptzfsboot.bin: gptzfsboot.out
62169689Skan	objcopy -S -O binary gptzfsboot.out ${.TARGET}
63169689Skan
64169689Skangptzfsboot.out: ${BTXCRT} zfsboot.o sio.o gpt.o drv.o cons.o util.o
65169689Skan	${LD} ${LD_FLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} ${LIBSTAND}
66169689Skan
67169689Skanzfsboot.o: ${.CURDIR}/../../zfs/zfsimpl.c
68169689Skan
69169689Skan.if ${MACHINE_CPUARCH} == "amd64"
70169689Skanbeforedepend zfsboot.o: machine
71CLEANFILES+=	machine
72machine:
73	ln -sf ${.CURDIR}/../../../i386/include machine
74.endif
75
76.include <bsd.prog.mk>
77
78# XXX: clang integrated-as doesn't grok .codeNN directives yet
79CFLAGS.gptldr.S=	${CLANG_NO_IAS}
80CFLAGS+=		${CFLAGS.${.IMPSRC:T}}
81