Makefile revision 360838
1152909Sanholt# $FreeBSD: stable/11/stand/i386/gptboot/Makefile 360838 2020-05-09 08:55:18Z dim $
2152909Sanholt
3152909Sanholt.include <bsd.init.mk>
4182080Srnoland
5152909Sanholt.PATH:		${BOOTSRC}/i386/boot2 ${BOOTSRC}/i386/common ${SASRC}
6152909Sanholt
7152909SanholtFILES=		gptboot
8152909SanholtMAN=		gptboot.8
9152909Sanholt
10152909SanholtBOOT_COMCONSOLE_PORT?= 0x3f8
11152909SanholtBOOT_COMCONSOLE_SPEED?= 9600
12182080SrnolandB2SIOFMT?=	0x3
13152909Sanholt
14152909SanholtREL1=	0x700
15152909SanholtORG1=	0x7c00
16182080SrnolandORG2=	0x0
17152909Sanholt
18152909Sanholt# Decide level of UFS support.
19152909SanholtGPTBOOT_UFS?=	UFS1_AND_UFS2
20152909Sanholt#GPTBOOT_UFS?=	UFS2_ONLY
21152909Sanholt#GPTBOOT_UFS?=	UFS1_ONLY
22152909Sanholt
23152909SanholtCFLAGS+=-DBOOTPROG=\"gptboot\" \
24182080Srnoland	-O1 \
25152909Sanholt	-DGPT \
26145132Sanholt	-D${GPTBOOT_UFS} \
27152909Sanholt	-DSIOPRT=${BOOT_COMCONSOLE_PORT} \
28152909Sanholt	-DSIOFMT=${B2SIOFMT} \
29152909Sanholt	-DSIOSPD=${BOOT_COMCONSOLE_SPEED} \
30145132Sanholt	-I${LDRSRC} \
31145132Sanholt	-I${BOOTSRC}/i386/common \
32145132Sanholt	-I${BOOTSRC}/i386/boot2 \
33145132Sanholt	-Wall -Waggregate-return -Wbad-function-cast -Wno-cast-align \
34145132Sanholt	-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
35145132Sanholt	-Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \
36145132Sanholt	-Wno-pointer-sign
37152909Sanholt
38145132SanholtCFLAGS.gcc+=	--param max-inline-insns-single=100
39145132Sanholt
40145132SanholtLD_FLAGS+=${LD_FLAGS_BIN}
41145132Sanholt
42145132SanholtCLEANFILES+=	gptboot
43145132Sanholt
44145132Sanholtgptboot: gptldr.bin gptboot.bin ${BTXKERN}
45145132Sanholt	btxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l gptldr.bin \
46145132Sanholt	    -o ${.TARGET} gptboot.bin
47145132Sanholt
48145132SanholtCLEANFILES+=	gptldr.bin gptldr.out gptldr.o
49182080Srnoland
50182080Srnolandgptldr.bin: gptldr.out
51182080Srnoland	${OBJCOPY} -S -O binary gptldr.out ${.TARGET}
52182080Srnoland
53182080Srnolandgptldr.out: gptldr.o
54182080Srnoland	${LD} ${LD_FLAGS} -e start --defsym ORG=${ORG1} -T ${LDSCRIPT} -o ${.TARGET} gptldr.o
55145132Sanholt
56145132SanholtCLEANFILES+=	gptboot.bin gptboot.out gptboot.o sio.o crc32.o drv.o \
57145132Sanholt		cons.o ${OPENCRYPTO_XTS}
58145132Sanholt
59145132Sanholtgptboot.bin: gptboot.out
60145132Sanholt	${OBJCOPY} -S -O binary gptboot.out ${.TARGET}
61145132Sanholt
62145132Sanholtgptboot.out: ${BTXCRT} gptboot.o sio.o crc32.o drv.o cons.o ${OPENCRYPTO_XTS}
63145132Sanholt	${LD} ${LD_FLAGS} --defsym ORG=${ORG2} -T ${LDSCRIPT} -o ${.TARGET} ${.ALLSRC} ${LIBSA32}
64145132Sanholt
65145132Sanholt.include <bsd.prog.mk>
66145132Sanholt
67145132Sanholt# XXX: clang integrated-as doesn't grok .codeNN directives yet
68145132SanholtCFLAGS.gptldr.S=	${CLANG_NO_IAS}
69145132Sanholt