1*ca987d46SWarner Losh# $FreeBSD$ 2*ca987d46SWarner Losh 3*ca987d46SWarner LoshHAVE_GPT= yes 4*ca987d46SWarner Losh 5*ca987d46SWarner Losh.include <bsd.init.mk> 6*ca987d46SWarner Losh 7*ca987d46SWarner Losh.PATH: ${BOOTSRC}/i386/boot2 ${BOOTSRC}/i386/gptboot \ 8*ca987d46SWarner Losh ${BOOTSRC}/i386/zfsboot ${BOOTSRC}/i386/common \ 9*ca987d46SWarner Losh ${SASRC} 10*ca987d46SWarner Losh 11*ca987d46SWarner LoshFILES= gptzfsboot 12*ca987d46SWarner LoshMAN= gptzfsboot.8 13*ca987d46SWarner Losh 14*ca987d46SWarner LoshNM?= nm 15*ca987d46SWarner Losh 16*ca987d46SWarner LoshBOOT_COMCONSOLE_PORT?= 0x3f8 17*ca987d46SWarner LoshBOOT_COMCONSOLE_SPEED?= 9600 18*ca987d46SWarner LoshB2SIOFMT?= 0x3 19*ca987d46SWarner Losh 20*ca987d46SWarner LoshREL1= 0x700 21*ca987d46SWarner LoshORG1= 0x7c00 22*ca987d46SWarner LoshORG2= 0x0 23*ca987d46SWarner Losh 24*ca987d46SWarner LoshCFLAGS+=-DBOOTPROG=\"gptzfsboot\" \ 25*ca987d46SWarner Losh -O1 \ 26*ca987d46SWarner Losh -DGPT -DZFS -DBOOT2 \ 27*ca987d46SWarner Losh -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ 28*ca987d46SWarner Losh -DSIOFMT=${B2SIOFMT} \ 29*ca987d46SWarner Losh -DSIOSPD=${BOOT_COMCONSOLE_SPEED} \ 30*ca987d46SWarner Losh -I${LDRSRC} \ 31*ca987d46SWarner Losh -I${BOOTSRC}/i386/common \ 32*ca987d46SWarner Losh -I${ZFSSRC} \ 33*ca987d46SWarner Losh -I${SYSDIR}/cddl/boot/zfs \ 34*ca987d46SWarner Losh -I${BOOTSRC}/i386/btx/lib \ 35*ca987d46SWarner Losh -I${BOOTSRC}/i386/boot2 \ 36*ca987d46SWarner Losh -Wall -Waggregate-return -Wbad-function-cast \ 37*ca987d46SWarner Losh -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \ 38*ca987d46SWarner Losh -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \ 39*ca987d46SWarner Losh -Winline -Wno-pointer-sign 40*ca987d46SWarner Losh 41*ca987d46SWarner LoshNO_WCAST_ALIGN= 42*ca987d46SWarner Losh 43*ca987d46SWarner Losh.if ${COMPILER_TYPE} == "clang" || \ 44*ca987d46SWarner Losh (${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} > 40201) 45*ca987d46SWarner LoshCFLAGS+= -Wno-tentative-definition-incomplete-type 46*ca987d46SWarner Losh.endif 47*ca987d46SWarner Losh 48*ca987d46SWarner Losh.if ${MACHINE} == "amd64" 49*ca987d46SWarner LoshLIBZFSBOOT=${BOOTOBJ}/zfs32/libzfsboot.a 50*ca987d46SWarner Losh.else 51*ca987d46SWarner LoshLIBZFSBOOT=${BOOTOBJ}/zfs/libzfsboot.a 52*ca987d46SWarner Losh.endif 53*ca987d46SWarner Losh 54*ca987d46SWarner LoshCFLAGS.gcc+= --param max-inline-insns-single=100 55*ca987d46SWarner Losh 56*ca987d46SWarner LoshLD_FLAGS+=${LD_FLAGS_BIN} 57*ca987d46SWarner Losh 58*ca987d46SWarner LoshCLEANFILES+= gptzfsboot 59*ca987d46SWarner Losh 60*ca987d46SWarner Loshgptzfsboot: gptldr.bin gptzfsboot.bin ${BTXKERN} 61*ca987d46SWarner Losh btxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l gptldr.bin \ 62*ca987d46SWarner Losh -o ${.TARGET} gptzfsboot.bin 63*ca987d46SWarner Losh 64*ca987d46SWarner LoshCLEANFILES+= gptldr.bin gptldr.out gptldr.o 65*ca987d46SWarner Losh 66*ca987d46SWarner Loshgptldr.bin: gptldr.out 67*ca987d46SWarner Losh ${OBJCOPY} -S -O binary gptldr.out ${.TARGET} 68*ca987d46SWarner Losh 69*ca987d46SWarner Loshgptldr.out: gptldr.o 70*ca987d46SWarner Losh ${LD} ${LD_FLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} gptldr.o 71*ca987d46SWarner Losh 72*ca987d46SWarner LoshCLEANFILES+= gptzfsboot.bin gptzfsboot.out zfsboot.o sio.o cons.o \ 73*ca987d46SWarner Losh drv.o gpt.o util.o ${OPENCRYPTO_XTS} 74*ca987d46SWarner Losh 75*ca987d46SWarner Loshgptzfsboot.bin: gptzfsboot.out 76*ca987d46SWarner Losh ${OBJCOPY} -S -O binary gptzfsboot.out ${.TARGET} 77*ca987d46SWarner Losh 78*ca987d46SWarner Loshgptzfsboot.out: ${BTXCRT} zfsboot.o sio.o gpt.o drv.o cons.o util.o \ 79*ca987d46SWarner Losh ${OPENCRYPTO_XTS} 80*ca987d46SWarner Losh ${LD} ${LD_FLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} ${LIBGELIBOOT} ${LIBZFSBOOT} ${LIBSA32} 81*ca987d46SWarner Losh 82*ca987d46SWarner Loshzfsboot.o: ${ZFSSRC}/zfsimpl.c 83*ca987d46SWarner Losh 84*ca987d46SWarner Losh.include <bsd.prog.mk> 85*ca987d46SWarner Losh 86*ca987d46SWarner Losh# XXX: clang integrated-as doesn't grok .codeNN directives yet 87*ca987d46SWarner LoshCFLAGS.gptldr.S= ${CLANG_NO_IAS} 88