1# $NetBSD: Makefile,v 1.2 2025/11/22 11:21:46 jmcneill Exp $
2
3S=		${.CURDIR}/../../../..
4POWERPC=	${S}/arch/powerpc
5
6PROG?=		ppcboot.elf
7NEWVERSWHAT=	"Wii MINI boot"
8
9SRCS+=		start.S
10SRCS+=		boot.c
11SRCS+=		console.c
12SRCS+=		conf.c
13SRCS+=		devopen.c
14SRCS+=		gecko.c
15SRCS+=		gpio.c
16SRCS+=		miniipc.c
17SRCS+=		sdmmc.c
18SRCS+=		timer.c
19
20NOMAN=		# defined
21NOSANITIZER=	# defined
22NORELRO=	# defined
23STRIPFLAG=	# nothing
24
25LIBCRT0=	# nothing
26LIBCRTI=	# nothing
27LIBCRTBEGIN=	# nothing
28LIBCRTEND=	# nothing
29LIBC=		# nothing
30
31BINDIR=		/usr/mdec
32BINMODE=	444
33
34.include <bsd.own.mk>
35
36TEXTADDR=	0x01004000
37STACKADDR=	0x01100000
38ENTRY=		__start
39
40AFLAGS+=	-mcpu=750
41
42CFLAGS+=	-mcpu=750
43CFLAGS+=	${${ACTIVE_CC} == "gcc":? -msdata=none :}
44CFLAGS+=	${${ACTIVE_CC} == "gcc":? -mno-strict-align :}
45CFLAGS+=	-msoft-float
46CFLAGS+=	-ffreestanding
47CFLAGS+=	-nostdinc
48CFLAGS+=	-Wall -Wmissing-prototypes
49
50CPPFLAGS+=	-D_STANDALONE
51CPPFLAGS+=	-DSUPPORT_DOSFS
52CPPFLAGS+=	-DLIBSA_FFS_EI
53CPPFLAGS+=	-DLIBSA_DISKLABEL_EI
54
55CPPFLAGS+=	-DTEXTADDR=${TEXTADDR}
56CPPFLAGS+=	-DSTACKADDR=${STACKADDR}
57CPPFLAGS+=	-DPPC_OEA -DDISTANT_KERNEL -D__wii__ -Devbppc=evbppc
58CPPFLAGS+=	-DCACHE_LINE_SIZE=32
59CPPFLAGS+=	-DEVBPPC_HAS_MBR
60
61CPPFLAGS+=	-I. -I${.CURDIR} -I${.CURDIR}/../../.. -I${.CURDIR}/../../../..
62
63# Follow the suit of Makefile.kern.inc; needed for the lfs64 union
64# accessors -- they don't actually dereference the resulting pointer,
65# just use it for type-checking.
66CWARNFLAGS+=		${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
67
68### find out what to use for libsa
69SA_AS= library
70SAMISCMAKEFLAGS+=	SA_USE_LOADFILE=yes
71SAMISCMAKEFLAGS+=	SA_USE_CREAD=yes
72SAMISCMAKEFLAGS+=	SA_INCLUDE_NET=no
73.include "${S}/lib/libsa/Makefile.inc"
74LIBSA= ${SALIB}
75
76### find out what to use for libkern
77KERN_AS= library
78.include "${S}/lib/libkern/Makefile.inc"
79LIBKERN= ${KERNLIB}
80
81### find out what to use for libz
82Z_AS= library
83.include "${S}/lib/libz/Makefile.inc"
84LIBZ= ${ZLIB}
85
86cleandir distclean: .WAIT cleanlibdir
87
88cleanlibdir:
89	-rm -rf lib
90
91LIBLIST= ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBSA}
92
93.include "${S}/conf/newvers_stand.mk"
94
95${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
96	${_MKTARGET_LINK}
97	${LD} -N -T ${POWERPC}/conf/kern.ldscript \
98	    -Ttext ${TEXTADDR} -e ${ENTRY} -q -X \
99	    -o ${PROG} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
100
101release: check_RELEASEDIR
102	${HOST_INSTALL_FILE} -m ${BINMODE} ${PROG} \
103	    ${RELEASEDIR}/${RELEASEMACHINEDIR}/installation/misc
104
105.include <bsd.klinks.mk>
106.include <bsd.prog.mk>
107