1 1.1.2.2 yamt # $NetBSD: Makefile.bootxx,v 1.1.2.2 2006/09/03 15:23:20 yamt Exp $ 2 1.1.2.2 yamt 3 1.1.2.2 yamt PROG?= bootxx_${FS} 4 1.1.2.2 yamt 5 1.1.2.2 yamt BOOTXX_SECTORS?= 15 6 1.1.2.2 yamt BOOTXX_MAXSIZE?= (( ${BOOTXX_SECTORS} * 512 )) 7 1.1.2.2 yamt 8 1.1.2.2 yamt SRCS= pbr.S label.S bootxx.S boot1.c 9 1.1.2.2 yamt 10 1.1.2.2 yamt LDFLAGS+= -e start 11 1.1.2.2 yamt 12 1.1.2.2 yamt CFLAGS= 13 1.1.2.2 yamt CPPFLAGS+= -DBOOTXX 14 1.1.2.2 yamt CPPFLAGS+= -DBOOTXX_SECTORS=${BOOTXX_SECTORS} 15 1.1.2.2 yamt CPPFLAGS+= -DPRIMARY_LOAD_ADDRESS=${PRIMARY_LOAD_ADDRESS} 16 1.1.2.2 yamt CPPFLAGS+= -DSECONDARY_LOAD_ADDRESS=${SECONDARY_LOAD_ADDRESS} 17 1.1.2.2 yamt CPPFLAGS+= -DXXfs_open=${FS}_open 18 1.1.2.2 yamt CPPFLAGS+= -DXXfs_close=${FS}_close 19 1.1.2.2 yamt CPPFLAGS+= -DXXfs_read=${FS}_read 20 1.1.2.2 yamt CPPFLAGS+= -DXXfs_stat=${FS}_stat 21 1.1.2.2 yamt CPPFLAGS+= -DFS=${FS} 22 1.1.2.2 yamt 23 1.1.2.2 yamt CPPFLAGS+= -DLIBSA_SINGLE_FILESYSTEM=xxfs \ 24 1.1.2.2 yamt -DLIBSA_NO_TWIDDLE \ 25 1.1.2.2 yamt -DLIBSA_NO_FD_CHECKING \ 26 1.1.2.2 yamt -DLIBSA_NO_RAW_ACCESS \ 27 1.1.2.2 yamt -DLIBSA_NO_FS_WRITE \ 28 1.1.2.2 yamt -DLIBSA_NO_FS_SEEK \ 29 1.1.2.2 yamt -DLIBSA_USE_MEMCPY \ 30 1.1.2.2 yamt -DLIBSA_USE_MEMSET \ 31 1.1.2.2 yamt -DLIBSA_SINGLE_DEVICE=blkdev \ 32 1.1.2.2 yamt -DLIBKERN_OPTIMISE_SPACE \ 33 1.1.2.2 yamt -D"blkdevioctl(x,y,z)=EINVAL" \ 34 1.1.2.2 yamt -D"blkdevclose(f)=0" \ 35 1.1.2.2 yamt -D"devopen(f,n,fl)=(*(fl)=(void *)n,0)" \ 36 1.1.2.2 yamt -DLIBSA_NO_DISKLABEL_MSGS 37 1.1.2.2 yamt 38 1.1.2.2 yamt SAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes" 39 1.1.2.2 yamt 40 1.1.2.2 yamt .include "../Makefile.bootprogs" 41 1.1.2.2 yamt 42 1.1.2.2 yamt LIBLIST= ${LIBSA} ${LIBKERN} 43 1.1.2.2 yamt 44 1.1.2.2 yamt CLEANFILES+= ${PROG}.sym ${PROG}.map 45 1.1.2.2 yamt 46 1.1.2.2 yamt ${PROG}: ${OBJS} ${LIBLIST} 47 1.1.2.2 yamt ${LD} -o ${PROG}.sym ${LDFLAGS} -Ttext ${PRIMARY_LOAD_ADDRESS} \ 48 1.1.2.2 yamt -Map ${PROG}.map -cref ${OBJS} ${LIBLIST} 49 1.1.2.2 yamt ${OBJCOPY} -O binary ${PROG}.sym ${PROG} 50 1.1.2.2 yamt @ sz=$$(ls -ln ${PROG} | tr -s ' ' | cut -d' ' -f5); \ 51 1.1.2.2 yamt if [ "$$sz" -gt "$$${BOOTXX_MAXSIZE}" ]; then \ 52 1.1.2.2 yamt echo "### ${PROG} size $$sz is larger than ${BOOTXX_MAXSIZE}" >&2 \ 53 1.1.2.2 yamt rm -f ${PROG}; \ 54 1.1.2.2 yamt ! :; \ 55 1.1.2.2 yamt else \ 56 1.1.2.2 yamt : pad to sector boundary; \ 57 1.1.2.2 yamt pad=$$(( 512 - ( $$sz & 511 ) )); \ 58 1.1.2.2 yamt [ $$pad = 512 ] || \ 59 1.1.2.2 yamt dd if=/dev/zero bs=1 count=$$pad >>${PROG} 2>/dev/null; \ 60 1.1.2.2 yamt echo "${PROG} size $$sz, $$((${BOOTXX_MAXSIZE} - $$sz)) free"; \ 61 1.1.2.2 yamt fi 62 1.1.2.2 yamt 63 1.1.2.2 yamt .include <bsd.prog.mk> 64