Makefile revision 319025
114062Swpaul# $FreeBSD: stable/10/sys/boot/i386/zfsboot/Makefile 319025 2017-05-28 01:14:59Z ngie $ 214062Swpaul 314062Swpaul.PATH: ${.CURDIR}/../boot2 ${.CURDIR}/../common ${.CURDIR}/../../common 414062Swpaul 514062SwpaulFILES= zfsboot 614062SwpaulMAN= zfsboot.8 714062Swpaul 814062SwpaulNM?= nm 914062Swpaul 1014062SwpaulBOOT_COMCONSOLE_PORT?= 0x3f8 1114062SwpaulBOOT_COMCONSOLE_SPEED?= 9600 1214062SwpaulB2SIOFMT?= 0x3 1314062Swpaul 1414062SwpaulREL1= 0x700 1514062SwpaulORG1= 0x7c00 1614062SwpaulORG2= 0x2000 1714062Swpaul 1814062SwpaulCFLAGS= -DBOOTPROG=\"zfsboot\" \ 1914062Swpaul -O1 \ 2014062Swpaul -DZFS -DBOOT2 \ 2114062Swpaul -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ 2214062Swpaul -DSIOFMT=${B2SIOFMT} \ 2314062Swpaul -DSIOSPD=${BOOT_COMCONSOLE_SPEED} \ 2414062Swpaul -I${.CURDIR}/../../common \ 2514062Swpaul -I${.CURDIR}/../common \ 2614062Swpaul -I${.CURDIR}/../../zfs \ 2714062Swpaul -I${.CURDIR}/../../../cddl/boot/zfs \ 2814062Swpaul -I${.CURDIR}/../btx/lib -I. \ 2914062Swpaul -I${.CURDIR}/../boot2 \ 3014062Swpaul -Wall -Waggregate-return -Wbad-function-cast -Wcast-align \ 3114062Swpaul -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \ 3214062Swpaul -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \ 3330377Scharnier -Winline 3430377Scharnier 3550479SpeterCFLAGS.gcc+= --param max-inline-insns-single=100 3630377Scharnier 3730377ScharnierLD_FLAGS=-static -N --gc-sections 3814062Swpaul 3914062SwpaulLIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a 4014062Swpaul 4114062Swpaul# Pick up ../Makefile.inc early. 4296222Sdes.include <bsd.init.mk> 4396222Sdes 4414062SwpaulCLEANFILES= zfsboot 4596222Sdes 4614062Swpaulzfsboot: zfsboot1 zfsboot2 4714062Swpaul cat zfsboot1 zfsboot2 > zfsboot 4896222Sdes 4996222SdesCLEANFILES+= zfsboot1 zfsldr.out zfsldr.o 5096222Sdes 5196222Sdeszfsboot1: zfsldr.out 5296222Sdes ${OBJCOPY} -S -O binary zfsldr.out ${.TARGET} 5396222Sdes 5496222Sdeszfsldr.out: zfsldr.o 5596222Sdes ${LD} ${LD_FLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} zfsldr.o 5696222Sdes 5796222SdesCLEANFILES+= zfsboot2 zfsboot.ld zfsboot.ldr zfsboot.bin zfsboot.out \ 5896222Sdes zfsboot.o zfsboot.s zfsboot.s.tmp sio.o cons.o drv.o util.o 5996222Sdes 6014062Swpaul# We currently allow 65536 bytes for zfsboot - in practice it could be 6114062Swpaul# any size up to 3.5Mb but keeping it fixed size simplifies zfsldr. 6214062Swpaul# 6396222SdesBOOT2SIZE= 65536 6496222Sdes 6514062Swpaulzfsboot2: zfsboot.ld 6627758Swpaul @set -- `ls -l ${.ALLSRC}`; x=$$((${BOOT2SIZE}-$$5)); \ 6714062Swpaul echo "$$x bytes available"; test $$x -ge 0 6896222Sdes ${DD} if=${.ALLSRC} of=${.TARGET} obs=${BOOT2SIZE} conv=osync 6914062Swpaul 7014062Swpaulzfsboot.ld: zfsboot.ldr zfsboot.bin ${BTXKERN} 7114062Swpaul btxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l zfsboot.ldr \ 7214062Swpaul -o ${.TARGET} -P 1 zfsboot.bin 7314062Swpaul 7414062Swpaulzfsboot.ldr: 7514062Swpaul cp /dev/null ${.TARGET} 7614062Swpaul 7714062Swpaulzfsboot.bin: zfsboot.out 7814062Swpaul ${OBJCOPY} -S -O binary zfsboot.out ${.TARGET} 7914062Swpaul 8014062Swpaulzfsboot.out: ${BTXCRT} zfsboot.o sio.o drv.o cons.o util.o 8114062Swpaul ${LD} ${LD_FLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} ${LIBSTAND} 8214062Swpaul 8314062SwpaulSRCS= zfsboot.c 8414062Swpaul 8514062Swpaul.if ${MACHINE_CPUARCH} == "amd64" 8614062Swpaulbeforedepend zfsboot.o: machine 8714062SwpaulCLEANFILES+= machine 8896222Sdesmachine: 8996222Sdes ln -sf ${.CURDIR}/../../../i386/include machine 9014062Swpaul.endif 9196222Sdes 9296222Sdes.include <bsd.prog.mk> 9396222Sdes 9496222Sdes# XXX: clang integrated-as doesn't grok .codeNN directives yet 9596222SdesCFLAGS.zfsldr.S= ${CLANG_NO_IAS} 9696222SdesCFLAGS+= ${CFLAGS.${.IMPSRC:T}} 9714062Swpaul