xref: /netbsd-src/sys/arch/atari/stand/bootxx/Makefile.bootxx (revision 8c436a9898268d0741505551551697b73d50c258)
1#	$NetBSD: Makefile.bootxx,v 1.11 2014/01/12 15:26:28 tsutsui Exp $
2
3NOMAN=	# defined
4
5.include <bsd.own.mk>
6
7PROG=	bootxx
8
9STRIPFLAG=
10BINMODE=${NONBINMODE}
11
12# XXX SHOULD NOT NEED TO DEFINE THESE!
13LIBCRT0=
14LIBCRTI=
15LIBC=
16LIBCRTBEGIN=
17LIBCRTEND=
18
19# logically src/sys
20S=${.CURDIR}/../../../../..
21S_SA=${S}/lib/libsa
22S_KERN=${S}/lib/libkern
23S_MACHSA=${S}/arch/atari/stand/libsa
24S_LIBTOS=${S}/arch/atari/stand/tostools/libtos
25
26S_MACHSAOBJ!=	cd ${S_MACHSA} && ${PRINTOBJDIR}
27
28LIBSA=${S_MACHSAOBJ}/lib/sa/libsa.a
29LIBKERN=${S_MACHSAOBJ}/lib/kern/libkern.a
30
31.include "../../Makefile.booters"
32.include "../../xxboot/${BTYPE}_LOADADDR"
33
34
35BOOTXX_MAXSIZE=		6656
36
37CPPFLAGS+=	-I. -I${S_LIBTOS} -I${S_MACHSA} -I${S_KERN} -I${S_SA} -I${S}
38LINKFLAGS=	-static -N -e start -Ttext ${LOADADDR}
39
40.PATH: ${.CURDIR}/.. ${S_LIBTOS}
41
42#
43# Warning: start.S should be the first source!
44#
45SRCS=	start.S bootxx.c filesystem.c
46
47LIBS=	${LIBSA} ${LIBKERN}
48
49beforeinstall:
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
68CLEANFILES+=	${PROG}.elf ${PROG}.bin ${PROG}.tmp
69
70.include <bsd.prog.mk>
71