1#	$NetBSD: Makefile,v 1.60 2021/02/28 20:27:40 thorpej Exp $
2
3S=	${.CURDIR}/../../../..
4
5PROG=		ofwboot
6FILES=		${PROG}.elf ${PROG}.xcf
7SRCS=		Locore.c boot.c ofdev.c hfs.c net.c netif_of.c \
8		loadfile_machdep.c
9XCOFFXTRA=	Xcoffxtra.c
10XCOFFXTRAOBJ=	Xcoffxtra.o
11CFLAGS+=	-ffreestanding
12CFLAGS+=	${${ACTIVE_CC} == "gcc":? -msoft-float :}
13CFLAGS+=	${CFLAGS_UNWIND.${ACTIVE_CC}}
14CFLAGS+=	-Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
15#CPPFLAGS+=	-DDEBUG -DNETIF_DEBUG
16CPPFLAGS+=	-D_STANDALONE -DSUPPORT_DHCP
17CPPFLAGS+=	-DSUPPORT_USTARFS -DHAVE_CHANGEDISK_HOOK
18DBG=		-Os
19
20# PR port-macppc/44895
21SRCS+=		alloc.c			# use ./alloc.c
22#CPPFLAGS+=	-DHEAP_VARIABLE		# use libsa alloc.c
23
24LIBCRT0=	# nothing
25LIBCRTI=	# nothing
26LIBCRTBEGIN=	# nothing
27LIBCRTEND=	# nothing
28LIBC=		# nothing
29
30.PATH:		${S}/arch/powerpc/powerpc
31SRCS+=		ofwmagic.S
32
33.PATH:		${S}/lib/libsa
34SRCS+=		byteorder.c
35
36NOMAN=		# defined
37STRIPFLAG=
38BINMODE=	444
39
40.include <bsd.own.mk>
41
42.if !defined(FIXCOFF)
43.if !defined(TOOL_MACPPCFIXCOFF)
44TOOL_MACPPCFIXCOFFDIR!=	cd ${.CURDIR}/../fixcoff && ${PRINTOBJDIR}
45TOOL_MACPPCFIXCOFF=	${TOOL_MACPPCFIXCOFFDIR}/fixcoff
46.endif
47.endif
48
49NEWVERSWHAT=	"OpenFirmware Boot"
50
51# For now...
52#RELOC=		20000
53RELOC=		E00000
54
55ENTRY=		_start
56
57CLEANFILES+=	${PROG}.elf ${PROG}.el1 ${PROG}.mrg ${PROG}.xcf
58CLEANFILES+=	${XCOFFXTRAOBJ}
59
60CPPFLAGS+=	-I. -I${.CURDIR} -I${.CURDIR}/../../.. -I${.CURDIR}/../../../..
61CPPFLAGS+=	-DRELOC=0x${RELOC} -DRELOC_FLATFILE=0x${RELOC_FLATFILE}
62#CPPFLAGS+=	-DXCOFF_GLUE		# for booting PCI Powermacs
63
64LINKFLAGS=	-N -Ttext ${RELOC} -Bstatic
65LINKFLAGS+=	${LINKFLAGS_UNWIND}
66
67### find out what to use for libkern
68KERN_AS=	library
69.include "${S}/lib/libkern/Makefile.inc"
70LIBKERN=	${KERNLIB}
71
72### find out what to use for libz
73Z_AS=		library
74.include "${S}/lib/libz/Makefile.inc"
75LIBZ=		${ZLIB}
76
77### find out what to use for libsa
78SA_AS=		library
79SAMISCMAKEFLAGS= SA_USE_CREAD=yes SA_USE_LOADFILE=yes
80.include "${S}/lib/libsa/Makefile.inc"
81LIBSA=		${SALIB}
82
83cleandir distclean: .WAIT cleanlibdir
84
85cleanlibdir:
86	-rm -rf lib
87
88.include "${S}/conf/newvers_stand.mk"
89
90all realall: ${PROG} ${PROG}.xcf ${PROG}.elf
91
92${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} 
93	${_MKTARGET_LINK}
94	${LD} -s -o ${PROG}.el1 ${LINKFLAGS} \
95	    ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
96	${OBJCOPY} -O binary ${PROG}.el1 ${PROG}
97
98.include <bsd.klinks.mk>
99.include <bsd.prog.mk>
100
101${PROG}.elf: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
102	${_MKTARGET_LINK}
103	${LD} -s -o ${PROG}.elf ${LINKFLAGS} \
104	    ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
105
106${PROG}.xcf: ${OBJS} ${XCOFFXTRAOBJ} ${LIBSA} ${LIBZ} ${LIBKERN}
107	${_MKTARGET_LINK}
108	${LD} -o ${PROG}.mrg ${LINKFLAGS} \
109	    -T ${.CURDIR}/../fixcoff/elf32_powerpc_merge.x \
110	    -e _entry ${XCOFFXTRAOBJ} \
111	    ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
112	${OBJCOPY} -O aixcoff-rs6000 -R .comment -R .note \
113	    ${PROG}.mrg ${PROG}.xcf
114	${TOOL_MACPPCFIXCOFF} ${PROG}.xcf
115