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