1 # $NetBSD: Makefile.bootxx,v 1.6.56.2 2010/08/11 22:51:46 yamt Exp $ 2 3 NOMAN= # defined 4 5 .include <bsd.own.mk> 6 7 PROG= bootxx 8 9 STRIPFLAG= 10 BINMODE=${NONBINMODE} 11 12 # XXX SHOULD NOT NEED TO DEFINE THESE! 13 LIBCRT0= 14 LIBC= 15 LIBCRTBEGIN= 16 LIBCRTEND= 17 18 # logically src/sys 19 S=${.CURDIR}/../../../../.. 20 S_SA=${S}/lib/libsa 21 S_KERN=${S}/lib/libkern 22 S_MACHSA=${S}/arch/atari/stand/libsa 23 S_LIBTOS=${S}/arch/atari/stand/tostools/libtos 24 25 S_MACHSAOBJ!= cd ${S_MACHSA} && ${PRINTOBJDIR} 26 27 LIBSA=${S_MACHSAOBJ}/lib/sa/libsa.a 28 LIBKERN=${S_MACHSAOBJ}/lib/kern/libkern.a 29 30 .include "../../Makefile.booters" 31 .include "../../xxboot/${BTYPE}_LOADADDR" 32 33 34 BOOTXX_MAXSIZE= 6656 35 36 CPPFLAGS+= -I. -I${S_LIBTOS} -I${S_MACHSA} -I${S_KERN} -I${S_SA} -I${S} 37 LINKFLAGS= -static -N -e start -Ttext ${LOADADDR} 38 39 .PATH: ${.CURDIR}/.. ${S_LIBTOS} 40 41 # 42 # Warning: start.S should be the first source! 43 # 44 SRCS= start.S bootxx.c filesystem.c 45 46 LIBS= ${LIBSA} ${LIBKERN} 47 48 beforeinstall: 49 ${INSTALL_DIR} ${DESTDIR}${BINDIR} 50 51 ${PROG}: ${OBJS} ${LIBS} 52 ${_MKTARGET_LINK} 53 ${LD} ${LINKFLAGS} -o ${.TARGET}.elf ${OBJS} ${LIBS} 54 ${OBJCOPY} -O binary ${PROG}.elf ${PROG}.bin 55 ${SIZE} ${PROG}.elf 56 @len=`${SIZE} ${PROG}.elf | \ 57 ${TOOL_AWK} 'NR==2 { print $$1+$$2 }'`; \ 58 if [ "$$len" -gt ${BOOTXX_MAXSIZE} ]; then \ 59 echo "### ${PROG} text+data size $$len is" \ 60 "larger than ${BOOTXX_MAXSIZE}" >&2; \ 61 exit 1; \ 62 fi; 63 ${TOOL_CAT} ${PROG}.bin /dev/zero | \ 64 dd of=${PROG}.tmp bs=1 count=6656 2>/dev/null 65 mv ${PROG}.tmp ${.TARGET} 66 67 CLEANFILES+= ${PROG}.elf ${PROG}.bin ${PROG}.tmp 68 69 .include <bsd.prog.mk> 70