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