Makefile revision 1.35
11.35Smartin#	$NetBSD: Makefile,v 1.35 2015/10/10 06:49:40 martin Exp $
21.1Smrg
31.1SmrgCURDIR=	${.CURDIR}
41.1SmrgS=	${CURDIR}/../../../..
51.1Smrg
61.1Smrg#
71.1Smrg# Override normal settings
81.1Smrg#
91.1Smrg
101.29StsutsuiWARNS?=		2
111.30SmattKLINK_MACHINE=	sparc64
121.1Smrg
131.1SmrgPROG?=		ofwboot
141.1SmrgSRCS=		srt0.s Locore.c boot.c ofdev.c alloc.c net.c netif_of.c vers.c
151.25SchristosSRCS+=		bootinfo.c loadfile_machdep.c promlib.c prf.c isfloppy.c
161.31Spalle.if ${MACHINE_ARCH} == "sparc64"
171.31SpalleSRCS+=		hvcall.S
181.35SmartinCPPFLAGS+=	-DSUN4V
191.31Spalle.endif
201.25Schristos.PATH:		${S}/arch/sparc64/sparc64 ${S}/arch/sparc/stand/common
211.1Smrg
221.13Ssimonb# XXX SHOULD NOT NEED TO DEFINE THESE!
231.13SsimonbLIBCRT0=
241.32StsutsuiLIBCRTI=
251.13SsimonbLIBC=
261.13SsimonbLIBCRTBEGIN=
271.13SsimonbLIBCRTEND=
281.13Ssimonb
291.8SthorpejCOPTS+=		-ffreestanding
301.1SmrgCWARNFLAGS+=	-Wno-main
311.35SmartinCFLAGS+=	${COPTS}
321.35SmartinCPPFLAGS+=	-D_STANDALONE
331.18ScdiCPPFLAGS+=	-DBOOT_ELF32 -DBOOT_ELF64 -DBOOT_AOUT
341.10SmrgCPPFLAGS+=	-DNETBOOT
351.14SchristosCPPFLAGS+=	-DSUPPORT_DHCP
361.1Smrg#CPPFLAGS+=	-DNETIF_DEBUG 
371.18Scdi#CPPFLAGS+=	-D_DEBUG
381.10Smrg
391.10SmrgLINKS+=		${BINDIR}/ofwboot ${BINDIR}/ofwboot.net
401.1Smrg
411.5StvNOMAN=		# defined
421.1SmrgSTRIPFLAG=
431.1SmrgBINMODE=	444
441.1Smrg
451.1SmrgNEWVERSWHAT=	"OpenFirmware Boot"
461.1Smrg
471.1Smrg#
481.1Smrg# Elf64 defaults to 1MB
491.1Smrg#
501.1Smrg# We may get address conflicts with other bootloaders, say
511.1Smrg# Sun's ufsboot, so we'll pick a reasonably empty address.
521.1Smrg#
531.18ScdiRELOC=		100000
541.1Smrg
551.1SmrgENTRY=		_start
561.1Smrg
571.1SmrgCPPFLAGS+=	-I${CURDIR}/../../.. -I${CURDIR}/../../../.. -I${CURDIR} -I.
581.22StsutsuiCPPFLAGS+=	-I${CURDIR}/../../../../../common/include
591.1SmrgCPPFLAGS+=	-DRELOC=0x${RELOC}
601.1Smrg
611.1Smrg#
621.1Smrg# XXXXX FIXME
631.1Smrg#
641.1SmrgCPPFLAGS+=	-DSPARC_BOOT_AOUT
651.1SmrgCPPFLAGS+=	-DSPARC_BOOT_ELF
661.1SmrgCPPFLAGS+=	-DSPARC_BOOT_UFS
671.1SmrgCPPFLAGS+=	-DSPARC_BOOT_NFS
681.23SmartinCPPFLAGS+=	-DSPARC_BOOT_CD9660
691.1Smrg
701.1Smrg### find out what to use for libkern
711.1SmrgKERN_AS=	library
721.1Smrg.include "${S}/lib/libkern/Makefile.inc"
731.1SmrgLIBKERN=	${KERNLIB}
741.1Smrg
751.1Smrg### find out what to use for libz
761.1SmrgZ_AS=		library
771.1Smrg.include "${S}/lib/libz/Makefile.inc"
781.1SmrgLIBZ=		${ZLIB}
791.1Smrg
801.1Smrg### find out what to use for libsa
811.1SmrgSA_AS=		library
821.18ScdiSAMISCMAKEFLAGS= SA_USE_LOADFILE=yes SA_USE_CREAD=yes
831.20SmartinSAMISCCPPFLAGS+= -DCOMPAT_SOLARIS_UFS
841.1Smrg.include "${S}/lib/libsa/Makefile.inc"
851.1SmrgLIBSA=		${SALIB}
861.1Smrg
871.28Snakayama.include <bsd.own.mk>
881.30Smatt.include <bsd.klinks.mk>
891.28Snakayama
901.1Smrgvers.c: version
911.27Sjoerg	${HOST_SH} ${S}/conf/newvers_stand.sh ${${MKREPRO} == "yes" :?:-D} \
921.27Sjoerg	    ${CURDIR}/version "sparc64" ${NEWVERSWHAT}
931.1Smrg
941.18ScdiCLEANFILES+= vers.c
951.18Scdi
961.1Smrg.if CROSS
971.1Smrg${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
981.30Smatt	${_MKTARGET_LINK}
991.1Smrg	${LD} -N -p -Ttext ${RELOC} -e ${ENTRY} >lderr -o ${PROG} \
1001.1Smrg	    ${OBJS} -L${SADST} -lsa -L${ZDST} -lz -L${KERNDST} -lkern # solaris linker
1011.1Smrg.else
1021.1Smrg${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
1031.30Smatt	${_MKTARGET_LINK}
1041.33Smartin	${LD} -X -N -S -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.35SmartinCPUFLAGS+=		-mcpu=v9
1111.2SmrgAFLAGS+=		-Wa,-Av9a
1121.26SjoergAFLAGS+=		-x assembler-with-cpp -D_LOCORE -D__ELF__
1131.2Smrg
1141.34SjoergNORMAL_S=	${CC} ${AFLAGS} ${AFLAGS.${<:T}}  ${CPPFLAGS} -c $<
1151.1Smrgsrt0.o: srt0.s
1161.1Smrg	${NORMAL_S}
1171.1Smrg
1181.31Spallehvcall.o: hvcall.S
1191.31Spalle	${NORMAL_S}
1201.31Spalle
1211.31Spalle
1221.1Smrg# Explicit dependency for this.
1231.18Scdiboot.o: boot.c
124