Home | History | Annotate | Line # | Download | only in bootxx
Makefile.bootxx revision 1.8
      1 #	$NetBSD: Makefile.bootxx,v 1.8 2009/01/06 13:35:30 tsutsui Exp $
      2 
      3 NOMAN=	# defined
      4 
      5 # for OBJECT_FMT
      6 .include <bsd.own.mk>
      7 
      8 PROG=	bootxx
      9 
     10 STRIPFLAG=
     11 BINMODE=${NONBINMODE}
     12 
     13 # XXX SHOULD NOT NEED TO DEFINE THESE!
     14 LIBCRT0=
     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}/libsa.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 .if ${OBJECT_FMT} == "ELF"
     38 LINKFLAGS=	-static -N -e start -Ttext ${LOADADDR}
     39 .else
     40 LINKFLAGS=	-static -N -Ttext ${LOADADDR}
     41 .endif
     42 
     43 .PATH: ${.CURDIR}/.. ${S_LIBTOS}
     44 
     45 #
     46 # Warning: start.S should be the first source!
     47 #
     48 SRCS=	start.S bootxx.c filesystem.c
     49 
     50 LIBS=	${LIBSA}
     51 
     52 beforeinstall:
     53 	${INSTALL_DIR} ${DESTDIR}${BINDIR}
     54 
     55 ${PROG}:	${OBJS} ${LIBS}
     56 	${_MKTARGET_LINK}
     57 	${LD} ${LINKFLAGS} -o ${.TARGET}.elf ${OBJS} ${LIBS}
     58 	${OBJCOPY} -O binary ${PROG}.elf ${PROG}.bin
     59 	${SIZE} ${PROG}.elf
     60 	@len=`${SIZE} ${PROG}.elf |					\
     61 	    ${TOOL_AWK} 'NR==2 { print $$1+$$2 }'`;			\
     62 	if [ "$$len" -gt ${BOOTXX_MAXSIZE} ]; then			\
     63 		echo "### ${PROG} text+data size $$len is"		\
     64 		    "larger than ${BOOTXX_MAXSIZE}" >&2; \
     65 		exit 1;							\
     66 	fi;
     67 	${TOOL_CAT} ${PROG}.bin /dev/zero |				\
     68 	    dd of=${PROG}.tmp bs=1 count=6656  2>/dev/null
     69 	mv ${PROG}.tmp ${.TARGET}
     70 
     71 CLEANFILES+=	${PROG}.elf ${PROG}.bin ${PROG}.tmp
     72 
     73 .include <bsd.prog.mk>
     74