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