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