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