xref: /netbsd/sys/arch/macppc/stand/ofwboot/Makefile (revision c4a72b64)
1#	$NetBSD: Makefile,v 1.35 2002/09/20 03:20:24 wrstuden Exp $
2
3S=	${.CURDIR}/../../../..
4
5PROG=		ofwboot
6FILES=		${PROG}.elf ${PROG}.xcf
7SRCS=		Locore.c ofdev.c hfs.c net.c netif_of.c alloc.c vers.c
8XCOFFXTRA=	Xcoffxtra.c
9XCOFFXTRAOBJ=	Xcoffxtra.o
10CFLAGS+=	-Wno-main -msoft-float -mmultiple
11#CPPFLAGS+=	-DDEBUG -DNETIF_DEBUG
12CPPFLAGS+=	-D_STANDALONE -DSUPPORT_DHCP
13CPPFLAGS+=	-DSUPPORT_USTARFS -DHAVE_CHANGEDISK_HOOK
14CPPFLAGS+=	-DLIBSA_USE_MEMCPY -DLIBSA_USE_MEMSET
15DBG=		-Os
16
17.PATH:		${S}/arch/powerpc/powerpc
18SRCS+=		ofwmagic.S
19
20.PATH:		${S}/lib/libsa
21SRCS+=		byteorder.c
22
23NOMAN=		# defined
24STRIPFLAG=
25BINMODE=	444
26
27.if !defined(FIXCOFF)
28.include <bsd.own.mk>
29
30FIXCOFFDIR!=	cd ${.CURDIR}/../fixcoff && ${PRINTOBJDIR}
31FIXCOFF=	${FIXCOFFDIR}/fixcoff
32FIXCOFFTARG=	${FIXCOFF}
33
34${FIXCOFF}:
35	(cd ${.CURDIR}/../fixcoff; ${MAKE})
36
37.else
38FIXCOFFTARG=
39.endif
40
41NEWVERSWHAT=	"OpenFirmware Boot"
42
43# For now...
44#RELOC=		20000
45RELOC=		640000
46RELOC_FLATFILE=	600000
47
48ENTRY=		_start
49
50CLEANFILES+=	vers.c ${PROG}.elf ${PROG}.el1 ${PROG}.mrg ${PROG}.xcf
51CLEANFILES+=	machine powerpc
52
53CPPFLAGS+=	-I. -I${.CURDIR} -I${.CURDIR}/../../.. -I${.CURDIR}/../../../..
54CPPFLAGS+=	-DRELOC=0x${RELOC} -DRELOC_FLATFILE=0x${RELOC_FLATFILE}
55#CPPFLAGS+=	-DXCOFF_GLUE		# for booting PCI Powermacs
56
57CLEANFILES+= ${XCOFFXTRAOBJ} boot.o boot1.o
58
59.if !make(obj) && !make(clean) && !make(cleandir)
60.BEGIN:
61	@[ -h machine ] || ln -s ${S}/arch/${MACHINE}/include machine
62	@[ -h powerpc ] || ln -s ${S}/arch/powerpc/include powerpc
63.NOPATH: machine powerpc
64.endif
65CLEANFILES+= machine powerpc
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: cleanlibdir
84
85cleanlibdir:
86	rm -rf lib
87
88.PHONY: vers.c
89vers.c: version
90	sh ${S}/conf/newvers_stand.sh ${.CURDIR}/version "macppc" ${NEWVERSWHAT}
91
92all realall: ${PROG} ${PROG}.xcf ${PROG}.elf
93
94${PROG}: ${OBJS} boot1.o ${LIBSA} ${LIBZ} ${LIBKERN}
95	${LD} -s -N -Ttext ${RELOC_FLATFILE} -Bstatic -o ${PROG}.el1 \
96	    ${OBJS} boot1.o ${LIBSA} ${LIBZ} ${LIBKERN}
97	${OBJCOPY} -O binary ${PROG}.el1 ${PROG}
98
99.include <bsd.prog.mk>
100
101${PROG}.elf: ${OBJS} boot.o ${LIBSA} ${LIBZ} ${LIBKERN}
102	${LD} -s -N -Ttext ${RELOC} -Bstatic -o ${PROG}.elf \
103	    ${OBJS} boot.o ${LIBSA} ${LIBZ} ${LIBKERN}
104
105${PROG}.xcf: ${OBJS} boot.o ${XCOFFXTRAOBJ} ${LIBSA} ${LIBZ} ${LIBKERN} ${FIXCOFFTARG}
106	${LD} -s -N -T ${.CURDIR}/../fixcoff/elf32_powerpc_merge.x -e _entry \
107	    -Ttext ${RELOC} -Bstatic -o ${PROG}.mrg  ${XCOFFXTRAOBJ} \
108	    ${OBJS} boot.o ${LIBSA} ${LIBZ} ${LIBKERN}
109	${OBJCOPY} -O aixcoff-rs6000 -R .comment -R .note \
110	    ${PROG}.mrg ${PROG}.xcf
111	${FIXCOFF} ${PROG}.xcf
112