1#	$NetBSD: Makefile.buildboot,v 1.27 2020/09/07 07:08:35 mrg Exp $
2
3S?=	${.CURDIR}/../../../..
4
5.PATH: ${.CURDIR}/../lib
6
7KLINK_MACHINE= acorn32
8
9SRCS=	${PROGSOURCE}
10NOMAN=# defined
11BINDIR=/usr/mdec
12BINMODE=444
13FILESDIR=/usr/mdec
14
15# XXX SHOULD NOT NEED TO DEFINE THESE!
16LIBCRT0=
17LIBCRTI=
18LIBC=
19LIBCRTBEGIN=
20LIBCRTEND=
21
22MKMODULE?=no
23LINKFLAGS+=--no-dynamic-linker --noinhibit-exec
24.if ${MKMODULE} == "yes"
25RISCOSTYPE ?= ffa
26LINKFLAGS+=-shared -Bsymbolic --no-undefined -T ${.CURDIR}/../module.ldscript
27CFLAGS+=-DRISCOS_MODULE
28.else
29RISCOSTYPE ?= ff8
30RELOC=8000
31# -N (OMAGIC) since we don't need a gap between text and data.
32LINKFLAGS+=-N -Ttext ${RELOC}
33.endif
34
35.include "${S}/conf/newvers_stand.mk"
36
37.include <bsd.own.mk>
38.include <bsd.klinks.mk>
39
40CPPFLAGS+=	-D_STANDALONE 
41CPPFLAGS+=	-I. -I${.CURDIR}/../../.. -I${.CURDIR}/../../../..
42CPPFLAGS+=	-I${.CURDIR}/../lib
43CPPFLAGS+=	${ARM_APCS_FLAGS} ${${ACTIVE_CC} == "gcc" && ${HAVE_GCC:U0} < 9:? -march=armv3m :}
44CPUFLAGS=
45CFLAGS=		-O2
46CFLAGS+=	-ffreestanding -fno-unwind-tables
47CFLAGS+=	-Wall -Wstrict-prototypes -Wmissing-prototypes
48
49CLEANFILES+= machine ${MACHINE_ARCH}
50
51### find out what to use for libkern
52KERN_AS=	library
53.include "${S}/lib/libkern/Makefile.inc"
54LIBKERN=	${KERNLIB}
55
56### find out what to use for libz
57Z_AS=		library
58.include "${S}/lib/libz/Makefile.inc"
59LIBZ=		${ZLIB}
60
61### find out what to use for libsa
62SA_AS=		library
63SAMISCMAKEFLAGS+= SA_INCLUDE_NET=no
64CPPFLAGS+=	-DLIBSA_NO_RAW_ACCESS \
65		-DHEAP_VARIABLE
66.include "${S}/lib/libsa/Makefile.inc"
67LIBSA=		${SALIB}
68
69### find out what to use for libriscos
70RISCOS_AS=		library
71.include "${S}/arch/acorn32/stand/lib/Makefile.inc"
72LIBRISCOS=		${RISCOSLIB}
73
74${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBRISCOS}
75	${_MKTARGET_LINK}
76	${LD} -o ${.TARGET} ${LINKFLAGS} ${OBJS} \
77	    --start-group ${LIBSA} ${LIBZ} ${LIBRISCOS} ${LIBKERN} --end-group
78	${SIZE} ${.TARGET}
79
80${PROG},${RISCOSTYPE}: ${PROG}
81	${_MKTARGET_CREATE}
82	${OBJCOPY} --output-target=binary ${.ALLSRC} ${.TARGET}
83
84realall: ${PROG},${RISCOSTYPE}
85
86CLEANFILES+=	${PROG},${RISCOSTYPE}
87FILES+=		${PROG},${RISCOSTYPE}
88
89.include <bsd.prog.mk>
90