Home | History | Annotate | Line # | Download | only in bootxx
Makefile.bootxx revision 1.1.2.2
      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