xref: /netbsd-src/sys/arch/sparc/stand/boot/Makefile (revision dd3ee07da436799d8de85f3055253118b76bf345)
1#	$NetBSD: Makefile,v 1.44 2020/09/06 07:20:29 mrg Exp $
2
3STRIPFLAG=
4PROGSOURCE=	boot.c net.c netif_sun.c conf.c openfirm.c bootinfo.c \
5		mmu.c prompatch.c
6NEWVERSWHAT=	"Secondary Boot"
7FILES=		boot.net bootjs.net ${RELOCS:S/^/boot./g}
8CLEANFILES:=	${FILES}
9LINKS=		${BINDIR}/boot.${RELOC_DEFAULT} ${BINDIR}/boot
10
11CPPFLAGS+=	-DBOOT_AOUT -DBOOT_ELF32 -DSUPPORT_DHCP
12CFLAGS+=	-freestanding
13
14INCLUDE_LIBZ=	yes
15SAMISCMAKEFLAGS= SA_USE_CREAD=yes
16
17# Follow the suit of Makefile.kern.inc; needed for the lfs64 union
18# accessors -- they don't actually dereference the resulting pointer,
19# just use it for type-checking.
20CWARNFLAGS.clang+=      -Wno-error=address-of-packed-member
21CWARNFLAGS.gcc+=	${GCC_NO_ADDR_OF_PACKED_MEMBER}
22
23.include "../Makefile.buildboot"
24
25.if ${MACHINE} == sparc64
26CFLAGS+=	-m32
27LDFLAGS+=	-m elf32_sparc
28AFLAGS+=	-Wa,-32
29.endif
30
31.include <bsd.own.mk>
32
33OBJS=${SRCS:N*.h:N*.sh:N*.fth:R:S/$/.o/g}
34
35LINKFLAGS=-N -e start -Map $@.map
36
37.MAIN: all
38realall: ${FILES}
39
40
41# conjure up a magic header that is accepted by all Sun PROMS;
42# see installboot.c for details.
43
44SUN_MAGIC_HEADER='\01\03\01\07\060\200\0\07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'
45
46boot.net: boot.${RELOC_DEFAULT}
47	(printf ${SUN_MAGIC_HEADER}; cat ${.ALLSRC} ) > ${.TARGET}
48
49
50.include "${S}/conf/newvers_stand.mk"
51
52.include <bsd.prog.mk>
53
54bootjs.net: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
55	${LD} -S -o ${.TARGET} ${LINKFLAGS} -Ttext 300000 ${OBJS} \
56	    ${LIBSA} ${LIBZ} ${LIBKERN}
57	${SIZE} ${.TARGET}
58CLEANFILES+=	bootjs.net.map
59
60.for RELOC in ${RELOCS}
61boot.${RELOC}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
62	${LD} -S -o ${.TARGET}.tmp ${LINKFLAGS} -Ttext ${RELOC} ${OBJS} \
63	    ${LIBSA} ${LIBZ} ${LIBKERN}
64	${SIZE} ${.TARGET}.tmp
65	${OBJCOPY} -O binary ${.TARGET}.tmp ${.TARGET}
66	rm -f ${.TARGET}.tmp
67CLEANFILES+=	boot.${RELOC}.map
68.endfor
69