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