Makefile revision 1.18
11.18Scdi#	$NetBSD: Makefile,v 1.18 2006/01/27 18:31:11 cdi Exp $
21.1Smrg
31.1SmrgCURDIR=	${.CURDIR}
41.1SmrgS=	${CURDIR}/../../../..
51.1Smrg
61.1Smrg#
71.1Smrg# Override normal settings
81.1Smrg#
91.1Smrg
101.1SmrgWARNS=		0
111.1Smrg
121.1SmrgPROG?=		ofwboot
131.1SmrgSRCS=		srt0.s Locore.c boot.c ofdev.c alloc.c net.c netif_of.c vers.c
141.18ScdiSRCS+=		bootinfo.c loadfile_machdep.c promlib.c prf.c
151.1Smrg.PATH:		${S}/arch/sparc64/sparc64
161.1Smrg
171.13Ssimonb# XXX SHOULD NOT NEED TO DEFINE THESE!
181.13SsimonbLIBCRT0=
191.13SsimonbLIBC=
201.13SsimonbLIBCRTBEGIN=
211.13SsimonbLIBCRTEND=
221.13Ssimonb
231.8SthorpejCOPTS+=		-ffreestanding
241.1SmrgCWARNFLAGS+=	-Wno-main
251.2SmrgCFLAGS+=	${COPTS} ${CEXTRAFLAGS}
261.2SmrgCPPFLAGS+=	-D_STANDALONE -DSUN4U
271.18ScdiCPPFLAGS+=	-DBOOT_ELF32 -DBOOT_ELF64 -DBOOT_AOUT
281.10SmrgCPPFLAGS+=	-DNETBOOT
291.14SchristosCPPFLAGS+=	-DSUPPORT_DHCP
301.1Smrg#CPPFLAGS+=	-DNETIF_DEBUG 
311.18Scdi#CPPFLAGS+=	-D_DEBUG
321.10Smrg
331.10SmrgLINKS+=		${BINDIR}/ofwboot ${BINDIR}/ofwboot.net
341.1Smrg
351.5StvNOMAN=		# defined
361.1SmrgSTRIPFLAG=
371.1SmrgBINMODE=	444
381.1Smrg
391.1SmrgNEWVERSWHAT=	"OpenFirmware Boot"
401.1Smrg
411.1Smrg#
421.1Smrg# Elf64 defaults to 1MB
431.1Smrg#
441.1Smrg# We may get address conflicts with other bootloaders, say
451.1Smrg# Sun's ufsboot, so we'll pick a reasonably empty address.
461.1Smrg#
471.18ScdiRELOC=		100000
481.1Smrg
491.1SmrgENTRY=		_start
501.1Smrg
511.1SmrgCPPFLAGS+=	-I${CURDIR}/../../.. -I${CURDIR}/../../../.. -I${CURDIR} -I.
521.1SmrgCPPFLAGS+=	-DRELOC=0x${RELOC}
531.1Smrg
541.1Smrg#
551.1Smrg# XXXXX FIXME
561.1Smrg#
571.1SmrgCPPFLAGS+=	-DSPARC_BOOT_AOUT
581.1SmrgCPPFLAGS+=	-DSPARC_BOOT_ELF
591.1SmrgCPPFLAGS+=	-DSPARC_BOOT_UFS
601.1SmrgCPPFLAGS+=	-DSPARC_BOOT_NFS
611.1Smrg#CPPFLAGS+=	-DSPARC_BOOT_HSFS
621.1Smrg
631.1Smrg### find out what to use for libkern
641.1SmrgKERN_AS=	library
651.1Smrg.include "${S}/lib/libkern/Makefile.inc"
661.1SmrgLIBKERN=	${KERNLIB}
671.1Smrg
681.1Smrg### find out what to use for libz
691.1SmrgZ_AS=		library
701.1Smrg.include "${S}/lib/libz/Makefile.inc"
711.1SmrgLIBZ=		${ZLIB}
721.1Smrg
731.1Smrg### find out what to use for libsa
741.1SmrgSA_AS=		library
751.18ScdiSAMISCMAKEFLAGS= SA_USE_LOADFILE=yes SA_USE_CREAD=yes
761.1Smrg.include "${S}/lib/libsa/Makefile.inc"
771.1SmrgLIBSA=		${SALIB}
781.1Smrg
791.17Suwe.if !make(obj) && !make(clean) && !make(cleandir)
801.17Suwe.BEGIN:
811.17Suwe	@([ -h machine ] || ln -s ${S}/arch/sparc64/include machine)
821.17Suwe	@([ -h sparc64 ] || ln -s ${S}/arch/sparc64/include sparc64)
831.17Suwe	@([ -h sparc ] || ln -s ${S}/arch/sparc/include sparc)
841.11Smartin.NOPATH: machine sparc64 sparc
851.17Suwe.endif
861.17SuweCLEANFILES+= machine sparc64 sparc
871.11Smartin
881.7Snakayamacleandir distclean: cleanlibdir
891.7Snakayama
901.7Snakayamacleanlibdir:
911.12Sjmc	-rm -rf lib
921.1Smrg
931.1Smrgvers.c: version
941.9Slukem	${HOST_SH} ${S}/conf/newvers_stand.sh ${CURDIR}/version "sparc64" ${NEWVERSWHAT}
951.1Smrg
961.18ScdiCLEANFILES+= vers.c
971.18Scdi
981.1Smrg.if CROSS
991.1Smrg${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
1001.1Smrg	${LD} -N -p -Ttext ${RELOC} -e ${ENTRY} >lderr -o ${PROG} \
1011.1Smrg	    ${OBJS} -L${SADST} -lsa -L${ZDST} -lz -L${KERNDST} -lkern # solaris linker
1021.1Smrg.else
1031.1Smrg${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
1041.1Smrg	${LD} -X -N -Ttext ${RELOC} -e ${ENTRY} -o ${PROG} \
1051.1Smrg	    ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}	# native linker
1061.1Smrg.endif
1071.1Smrg
1081.1Smrg.include <bsd.prog.mk>
1091.1Smrg
1101.2Smrg.if ${MACHINE_ARCH} == "sparc64"
1111.2SmrgAFLAGS+=		-Wa,-Av9a
1121.2SmrgCEXTRAFLAGS?=		-D_LP64
1131.2Smrg.else
1141.2SmrgAFLAGS+=		-Wa,-Av8plusa
1151.2Smrg.endif
1161.2Smrg
1171.1Smrg.if CROSS
1181.2SmrgAFLAGS+=		-x assembler-with-cpp -traditional-cpp -D_LOCORE -D__ELF__
1191.2SmrgCEXTRAFLAGS?=		-D_LP64
1201.1Smrg.else
1211.2SmrgAFLAGS+=		-x assembler-with-cpp -traditional-cpp -D_LOCORE -D__ELF__ ${CEXTRAFLAGS}
1221.1Smrg.endif
1231.2Smrg
1241.1SmrgNORMAL_S=	${CC} ${AFLAGS} ${CPPFLAGS} -c $<
1251.1Smrgsrt0.o: srt0.s
1261.1Smrg	${NORMAL_S}
1271.1Smrg
1281.1Smrg# Explicit dependency for this.
1291.18Scdiboot.o: boot.c
130