Makefile revision 1.31
1#	$NetBSD: Makefile,v 1.31 2013/12/08 14:41:28 palle Exp $
2
3CURDIR=	${.CURDIR}
4S=	${CURDIR}/../../../..
5
6#
7# Override normal settings
8#
9
10WARNS?=		2
11KLINK_MACHINE=	sparc64
12
13PROG?=		ofwboot
14SRCS=		srt0.s Locore.c boot.c ofdev.c alloc.c net.c netif_of.c vers.c
15SRCS+=		bootinfo.c loadfile_machdep.c promlib.c prf.c isfloppy.c
16.if ${MACHINE_ARCH} == "sparc64"
17SRCS+=		hvcall.S
18.endif
19.PATH:		${S}/arch/sparc64/sparc64 ${S}/arch/sparc/stand/common
20
21# XXX SHOULD NOT NEED TO DEFINE THESE!
22LIBCRT0=
23LIBC=
24LIBCRTBEGIN=
25LIBCRTEND=
26
27COPTS+=		-ffreestanding
28CWARNFLAGS+=	-Wno-main
29CFLAGS+=	${COPTS} ${CEXTRAFLAGS}
30CPPFLAGS+=	-D_STANDALONE -DSUN4U
31.if ${MACHINE_ARCH} == "sparc64"
32CPPFLAGS+=	-DSUN4V
33.endif
34CPPFLAGS+=	-DBOOT_ELF32 -DBOOT_ELF64 -DBOOT_AOUT
35CPPFLAGS+=	-DNETBOOT
36CPPFLAGS+=	-DSUPPORT_DHCP
37#CPPFLAGS+=	-DNETIF_DEBUG 
38#CPPFLAGS+=	-D_DEBUG
39
40LINKS+=		${BINDIR}/ofwboot ${BINDIR}/ofwboot.net
41
42NOMAN=		# defined
43STRIPFLAG=
44BINMODE=	444
45
46NEWVERSWHAT=	"OpenFirmware Boot"
47
48#
49# Elf64 defaults to 1MB
50#
51# We may get address conflicts with other bootloaders, say
52# Sun's ufsboot, so we'll pick a reasonably empty address.
53#
54RELOC=		100000
55
56ENTRY=		_start
57
58CPPFLAGS+=	-I${CURDIR}/../../.. -I${CURDIR}/../../../.. -I${CURDIR} -I.
59CPPFLAGS+=	-I${CURDIR}/../../../../../common/include
60CPPFLAGS+=	-DRELOC=0x${RELOC}
61
62#
63# XXXXX FIXME
64#
65CPPFLAGS+=	-DSPARC_BOOT_AOUT
66CPPFLAGS+=	-DSPARC_BOOT_ELF
67CPPFLAGS+=	-DSPARC_BOOT_UFS
68CPPFLAGS+=	-DSPARC_BOOT_NFS
69CPPFLAGS+=	-DSPARC_BOOT_CD9660
70
71### find out what to use for libkern
72KERN_AS=	library
73.include "${S}/lib/libkern/Makefile.inc"
74LIBKERN=	${KERNLIB}
75
76### find out what to use for libz
77Z_AS=		library
78.include "${S}/lib/libz/Makefile.inc"
79LIBZ=		${ZLIB}
80
81### find out what to use for libsa
82SA_AS=		library
83SAMISCMAKEFLAGS= SA_USE_LOADFILE=yes SA_USE_CREAD=yes
84SAMISCCPPFLAGS+= -DCOMPAT_SOLARIS_UFS
85.include "${S}/lib/libsa/Makefile.inc"
86LIBSA=		${SALIB}
87
88.include <bsd.own.mk>
89.include <bsd.klinks.mk>
90
91vers.c: version
92	${HOST_SH} ${S}/conf/newvers_stand.sh ${${MKREPRO} == "yes" :?:-D} \
93	    ${CURDIR}/version "sparc64" ${NEWVERSWHAT}
94
95CLEANFILES+= vers.c
96
97.if CROSS
98${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
99	${_MKTARGET_LINK}
100	${LD} -N -p -Ttext ${RELOC} -e ${ENTRY} >lderr -o ${PROG} \
101	    ${OBJS} -L${SADST} -lsa -L${ZDST} -lz -L${KERNDST} -lkern # solaris linker
102.else
103${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
104	${_MKTARGET_LINK}
105	${LD} -X -N -Ttext ${RELOC} -e ${ENTRY} -o ${PROG} \
106	    ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}	# native linker
107.endif
108
109.include <bsd.prog.mk>
110
111.if ${MACHINE_ARCH} == "sparc64"
112AFLAGS+=		-Wa,-Av9a
113CEXTRAFLAGS?=		-D_LP64
114.else
115AFLAGS+=		-Wa,-Av8plusa
116.endif
117
118.if CROSS
119AFLAGS+=		-x assembler-with-cpp -D_LOCORE -D__ELF__
120CEXTRAFLAGS?=		-D_LP64
121.else
122AFLAGS+=		-x assembler-with-cpp -D_LOCORE -D__ELF__ ${CEXTRAFLAGS}
123.endif
124
125NORMAL_S=	${CC} ${AFLAGS} ${CPPFLAGS} -c $<
126srt0.o: srt0.s
127	${NORMAL_S}
128
129hvcall.o: hvcall.S
130	${NORMAL_S}
131
132
133# Explicit dependency for this.
134boot.o: boot.c
135