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