1ca987d46SWarner Losh 2ca987d46SWarner Losh.include <bsd.init.mk> 3ca987d46SWarner Losh 4ca987d46SWarner Losh.PATH: ${BOOTSRC}/i386/boot2 ${BOOTSRC}/i386/gptboot \ 5ca987d46SWarner Losh ${BOOTSRC}/i386/zfsboot ${BOOTSRC}/i386/common \ 63830659eSToomas Soome ${BOOTSRC}/common 7ca987d46SWarner Losh 8ca987d46SWarner LoshFILES= gptzfsboot 9ca987d46SWarner LoshMAN= gptzfsboot.8 10ca987d46SWarner Losh 11ca987d46SWarner LoshBOOT_COMCONSOLE_PORT?= 0x3f8 12*4722ceb7SEd MasteBOOT_COMCONSOLE_SPEED?= 115200 13ca987d46SWarner LoshB2SIOFMT?= 0x3 14ca987d46SWarner Losh 15ca987d46SWarner LoshREL1= 0x700 16ca987d46SWarner LoshORG1= 0x7c00 17ca987d46SWarner LoshORG2= 0x0 18ca987d46SWarner Losh 19ca987d46SWarner LoshCFLAGS+=-DBOOTPROG=\"gptzfsboot\" \ 20ca987d46SWarner Losh -O1 \ 213830659eSToomas Soome -DBOOT2 \ 223830659eSToomas Soome -DLOADER_GPT_SUPPORT \ 233830659eSToomas Soome -DLOADER_MBR_SUPPORT \ 243830659eSToomas Soome -DLOADER_ZFS_SUPPORT \ 25ca987d46SWarner Losh -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ 26ca987d46SWarner Losh -DSIOFMT=${B2SIOFMT} \ 27ca987d46SWarner Losh -DSIOSPD=${BOOT_COMCONSOLE_SPEED} \ 28ca987d46SWarner Losh -I${LDRSRC} \ 29ca987d46SWarner Losh -I${BOOTSRC}/i386/common \ 303830659eSToomas Soome -I${BOOTSRC}/i386/libi386 \ 31ca987d46SWarner Losh -I${ZFSSRC} \ 3292a2b890SWarner Losh -I${SYSDIR}/crypto/skein \ 33ca987d46SWarner Losh -I${SYSDIR}/cddl/boot/zfs \ 34e307eb94SToomas Soome -I${SYSDIR}/contrib/openzfs/include \ 35e307eb94SToomas Soome -I${SYSDIR}/contrib/openzfs/include/os/freebsd/spl \ 36e307eb94SToomas Soome -I${SYSDIR}/contrib/openzfs/include/os/freebsd/zfs \ 37e499793eSToomas Soome -I${SYSDIR}/cddl/contrib/opensolaris/common/lz4 \ 38ca987d46SWarner Losh -I${BOOTSRC}/i386/btx/lib \ 39ca987d46SWarner Losh -I${BOOTSRC}/i386/boot2 \ 4027bae615SToomas Soome -DHAVE_MEMCPY -I${SRCTOP}/sys/contrib/zlib \ 41ca987d46SWarner Losh -Wall -Waggregate-return -Wbad-function-cast \ 42ca987d46SWarner Losh -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \ 43ca987d46SWarner Losh -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \ 44073193edSDimitry Andric -Wno-pointer-sign 45ca987d46SWarner Losh 462dbeaed4SMark JohnstonCFLAGS.clang+= -Wno-tentative-definition-incomplete-type 47ca987d46SWarner Losh 482dbeaed4SMark JohnstonNO_WCAST_ALIGN= 49ca987d46SWarner Losh 50ca987d46SWarner LoshCFLAGS.gcc+= --param max-inline-insns-single=100 51ca987d46SWarner Losh 52ca987d46SWarner LoshLD_FLAGS+=${LD_FLAGS_BIN} 53ca987d46SWarner Losh 54ca987d46SWarner LoshCLEANFILES+= gptzfsboot 55ca987d46SWarner Losh 56ca987d46SWarner Loshgptzfsboot: gptldr.bin gptzfsboot.bin ${BTXKERN} 57ca987d46SWarner Losh btxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l gptldr.bin \ 58ca987d46SWarner Losh -o ${.TARGET} gptzfsboot.bin 59ca987d46SWarner Losh 60ca987d46SWarner LoshCLEANFILES+= gptldr.bin gptldr.out gptldr.o 61ca987d46SWarner Losh 62ca987d46SWarner Loshgptldr.bin: gptldr.out 63ca987d46SWarner Losh ${OBJCOPY} -S -O binary gptldr.out ${.TARGET} 64ca987d46SWarner Losh 65ca987d46SWarner Loshgptldr.out: gptldr.o 66a2037dbaSDimitry Andric ${LD} ${LD_FLAGS} -e start --defsym ORG=${ORG1} -T ${LDSCRIPT} -o ${.TARGET} gptldr.o 67ca987d46SWarner Losh 68b4cb3fe0SToomas SoomeOBJS= zfsboot.o sio.o cons.o bcache.o devopen.o disk.o part.o zfs_cmd.o misc.o 693830659eSToomas SoomeCLEANFILES+= gptzfsboot.bin gptzfsboot.out ${OBJS} ${OPENCRYPTO_XTS} 703830659eSToomas Soome 713830659eSToomas Soome# i386 standalone support library 723830659eSToomas SoomeLIBI386= ${BOOTOBJ}/i386/libi386/libi386.a 73ca987d46SWarner Losh 74ca987d46SWarner Loshgptzfsboot.bin: gptzfsboot.out 75ca987d46SWarner Losh ${OBJCOPY} -S -O binary gptzfsboot.out ${.TARGET} 76ca987d46SWarner Losh 773830659eSToomas Soomegptzfsboot.out: ${BTXCRT} ${OBJS} \ 78ca987d46SWarner Losh ${OPENCRYPTO_XTS} 793830659eSToomas Soome ${LD} ${LD_FLAGS} --defsym ORG=${ORG2} -T ${LDSCRIPT} -o ${.TARGET} ${.ALLSRC} ${LIBI386} ${LIBSA32} 80ca987d46SWarner Losh 81ca987d46SWarner Loshzfsboot.o: ${ZFSSRC}/zfsimpl.c 82ca987d46SWarner Losh 83ca987d46SWarner Losh.include <bsd.prog.mk> 84