Makefile revision 125932
1204076Spjd# $FreeBSD: head/sys/boot/i386/gptboot/Makefile 125932 2004-02-17 07:13:04Z ru $ 2204076Spjd 3210886SpjdFILES= boot boot1 boot2 4204076Spjd 5204076SpjdNM?= nm 6204076Spjd 7204076Spjd# A value of 0x80 enables LBA support. 8204076SpjdB1FLAGS= 0x80 9204076Spjd 10204076SpjdBOOT_COMCONSOLE_PORT?= 0x3f8 11204076SpjdBOOT_COMCONSOLE_SPEED?= 9600 12204076SpjdB2SIOFMT?= 0x3 13204076Spjd 14204076SpjdREL1= 0x700 15204076SpjdORG1= 0x7c00 16204076SpjdORG2= 0x2000 17204076Spjd 18204076Spjd# Decide level of UFS support. 19204076SpjdBOOT2_UFS?= UFS1_AND_UFS2 20204076Spjd#BOOT2_UFS?= UFS2_ONLY 21204076Spjd#BOOT2_UFS?= UFS1_ONLY 22204076Spjd 23204076SpjdCFLAGS= -Os \ 24204076Spjd -fno-guess-branch-probability -fomit-frame-pointer\ 25204076Spjd -mno-align-long-strings \ 26204076Spjd -mrtd \ 27204076Spjd -D${BOOT2_UFS} \ 28204076Spjd -DFLAGS=${B1FLAGS} \ 29204076Spjd -DSIOPRT=${BOOT_COMCONSOLE_PORT} \ 30204076Spjd -DSIOFMT=${B2SIOFMT} \ 31204076Spjd -DSIOSPD=${BOOT_COMCONSOLE_SPEED} \ 32204076Spjd -I${.CURDIR}/../../common \ 33204076Spjd -I${.CURDIR}/../btx/lib -I. \ 34204076Spjd -Wall -Waggregate-return -Wbad-function-cast -Wcast-align \ 35204076Spjd -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \ 36204076Spjd -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings 37204076Spjd 38204076SpjdLDFLAGS=-static -N --gc-sections 39204076Spjd 40204076Spjd# Pick up ../Makefile.inc early. 41204076Spjd.include <bsd.init.mk> 42204076Spjd 43204076SpjdCLEANFILES= boot 44204076Spjd 45204076Spjdboot: boot1 boot2 46204076Spjd cat boot1 boot2 > boot 47204076Spjd 48204076SpjdCLEANFILES+= boot1 boot1.out boot1.o 49204076Spjd 50204076Spjdboot1: boot1.out 51204076Spjd objcopy -S -O binary boot1.out ${.TARGET} 52204076Spjd 53204076Spjdboot1.out: boot1.o 54204076Spjd ${LD} ${LDFLAGS} -e start -Ttext ${ORG1} -o ${.TARGET} boot1.o 55204076Spjd 56204076SpjdCLEANFILES+= boot2 boot2.ld boot2.ldr boot2.bin boot2.out boot2.o \ 57204076Spjd boot2.s boot2.s.tmp boot2.h sio.o 58211977Spjd 59204076Spjdboot2: boot2.ld 60204076Spjd @set -- `ls -l boot2.ld`; x=$$((7680-$$5)); \ 61204076Spjd echo "$$x bytes available"; test $$x -ge 0 62210886Spjd dd if=boot2.ld of=${.TARGET} obs=7680 conv=osync 63204076Spjd 64204076Spjdboot2.ld: boot2.ldr boot2.bin ${BTXKERN} 65204076Spjd btxld -v -E ${ORG2} -f bin -b ${BTXKERN} -l boot2.ldr \ 66211886Spjd -o ${.TARGET} -P 1 boot2.bin 67204076Spjd 68210886Spjdboot2.ldr: 69204076Spjd dd if=/dev/zero of=${.TARGET} bs=276 count=1 70204076Spjd 71204076Spjdboot2.bin: boot2.out 72204076Spjd objcopy -S -O binary boot2.out ${.TARGET} 73204076Spjd 74211977Spjdboot2.out: ${BTXCRT} boot2.o sio.o 75211977Spjd ${LD} ${LDFLAGS} -Ttext ${ORG2} -o ${.TARGET} ${.ALLSRC} 76211977Spjd 77204076Spjdboot2.o: boot2.s 78204076Spjd 79204076SpjdSRCS= boot2.c boot2.h 80204076Spjd 81204076Spjdboot2.s: boot2.c boot2.h ${.CURDIR}/../../common/ufsread.c 82204076Spjd ${CC} ${CFLAGS} -S -o boot2.s.tmp ${.CURDIR}/boot2.c 83204076Spjd sed -e '/align/d' -e '/nop/d' < boot2.s.tmp > boot2.s 84204076Spjd rm -f boot2.s.tmp 85204076Spjd 86204076Spjdboot2.h: boot1.out 87204076Spjd ${NM} -t d ${.ALLSRC} | awk '/([0-9])+ T xread/ \ 88204076Spjd { x = $$1 - ORG1; \ 89211899Spjd printf("#define XREADORG %#x\n", REL1 + x) }' \ 90211899Spjd ORG1=`printf "%d" ${ORG1}` \ 91211899Spjd REL1=`printf "%d" ${REL1}` > ${.TARGET} 92211899Spjd 93204076Spjd.if ${MACHINE_ARCH} == "amd64" 94204076Spjdbeforedepend boot2.s: machine 95204076SpjdCLEANFILES+= machine 96204076Spjdmachine: 97204076Spjd ln -sf ${.CURDIR}/../../../i386/include machine 98204076Spjd.endif 99204076Spjd 100204076Spjd.include <bsd.prog.mk> 101204076Spjd