Makefile revision 1.30
11.30Smatt#	$NetBSD: Makefile,v 1.30 2013/08/21 06:41:52 matt 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.25Schristos.PATH:		${S}/arch/sparc64/sparc64 ${S}/arch/sparc/stand/common
171.1Smrg
181.13Ssimonb# XXX SHOULD NOT NEED TO DEFINE THESE!
191.13SsimonbLIBCRT0=
201.13SsimonbLIBC=
211.13SsimonbLIBCRTBEGIN=
221.13SsimonbLIBCRTEND=
231.13Ssimonb
241.8SthorpejCOPTS+=		-ffreestanding
251.1SmrgCWARNFLAGS+=	-Wno-main
261.2SmrgCFLAGS+=	${COPTS} ${CEXTRAFLAGS}
271.2SmrgCPPFLAGS+=	-D_STANDALONE -DSUN4U
281.18ScdiCPPFLAGS+=	-DBOOT_ELF32 -DBOOT_ELF64 -DBOOT_AOUT
291.10SmrgCPPFLAGS+=	-DNETBOOT
301.14SchristosCPPFLAGS+=	-DSUPPORT_DHCP
311.1Smrg#CPPFLAGS+=	-DNETIF_DEBUG 
321.18Scdi#CPPFLAGS+=	-D_DEBUG
331.10Smrg
341.10SmrgLINKS+=		${BINDIR}/ofwboot ${BINDIR}/ofwboot.net
351.1Smrg
361.5StvNOMAN=		# defined
371.1SmrgSTRIPFLAG=
381.1SmrgBINMODE=	444
391.1Smrg
401.1SmrgNEWVERSWHAT=	"OpenFirmware Boot"
411.1Smrg
421.1Smrg#
431.1Smrg# Elf64 defaults to 1MB
441.1Smrg#
451.1Smrg# We may get address conflicts with other bootloaders, say
461.1Smrg# Sun's ufsboot, so we'll pick a reasonably empty address.
471.1Smrg#
481.18ScdiRELOC=		100000
491.1Smrg
501.1SmrgENTRY=		_start
511.1Smrg
521.1SmrgCPPFLAGS+=	-I${CURDIR}/../../.. -I${CURDIR}/../../../.. -I${CURDIR} -I.
531.22StsutsuiCPPFLAGS+=	-I${CURDIR}/../../../../../common/include
541.1SmrgCPPFLAGS+=	-DRELOC=0x${RELOC}
551.1Smrg
561.1Smrg#
571.1Smrg# XXXXX FIXME
581.1Smrg#
591.1SmrgCPPFLAGS+=	-DSPARC_BOOT_AOUT
601.1SmrgCPPFLAGS+=	-DSPARC_BOOT_ELF
611.1SmrgCPPFLAGS+=	-DSPARC_BOOT_UFS
621.1SmrgCPPFLAGS+=	-DSPARC_BOOT_NFS
631.23SmartinCPPFLAGS+=	-DSPARC_BOOT_CD9660
641.1Smrg
651.1Smrg### find out what to use for libkern
661.1SmrgKERN_AS=	library
671.1Smrg.include "${S}/lib/libkern/Makefile.inc"
681.1SmrgLIBKERN=	${KERNLIB}
691.1Smrg
701.1Smrg### find out what to use for libz
711.1SmrgZ_AS=		library
721.1Smrg.include "${S}/lib/libz/Makefile.inc"
731.1SmrgLIBZ=		${ZLIB}
741.1Smrg
751.1Smrg### find out what to use for libsa
761.1SmrgSA_AS=		library
771.18ScdiSAMISCMAKEFLAGS= SA_USE_LOADFILE=yes SA_USE_CREAD=yes
781.20SmartinSAMISCCPPFLAGS+= -DCOMPAT_SOLARIS_UFS
791.1Smrg.include "${S}/lib/libsa/Makefile.inc"
801.1SmrgLIBSA=		${SALIB}
811.1Smrg
821.28Snakayama.include <bsd.own.mk>
831.30Smatt.include <bsd.klinks.mk>
841.28Snakayama
851.1Smrgvers.c: version
861.27Sjoerg	${HOST_SH} ${S}/conf/newvers_stand.sh ${${MKREPRO} == "yes" :?:-D} \
871.27Sjoerg	    ${CURDIR}/version "sparc64" ${NEWVERSWHAT}
881.1Smrg
891.18ScdiCLEANFILES+= vers.c
901.18Scdi
911.1Smrg.if CROSS
921.1Smrg${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
931.30Smatt	${_MKTARGET_LINK}
941.1Smrg	${LD} -N -p -Ttext ${RELOC} -e ${ENTRY} >lderr -o ${PROG} \
951.1Smrg	    ${OBJS} -L${SADST} -lsa -L${ZDST} -lz -L${KERNDST} -lkern # solaris linker
961.1Smrg.else
971.1Smrg${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
981.30Smatt	${_MKTARGET_LINK}
991.1Smrg	${LD} -X -N -Ttext ${RELOC} -e ${ENTRY} -o ${PROG} \
1001.1Smrg	    ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}	# native linker
1011.1Smrg.endif
1021.1Smrg
1031.1Smrg.include <bsd.prog.mk>
1041.1Smrg
1051.2Smrg.if ${MACHINE_ARCH} == "sparc64"
1061.2SmrgAFLAGS+=		-Wa,-Av9a
1071.2SmrgCEXTRAFLAGS?=		-D_LP64
1081.2Smrg.else
1091.2SmrgAFLAGS+=		-Wa,-Av8plusa
1101.2Smrg.endif
1111.2Smrg
1121.1Smrg.if CROSS
1131.26SjoergAFLAGS+=		-x assembler-with-cpp -D_LOCORE -D__ELF__
1141.2SmrgCEXTRAFLAGS?=		-D_LP64
1151.1Smrg.else
1161.26SjoergAFLAGS+=		-x assembler-with-cpp -D_LOCORE -D__ELF__ ${CEXTRAFLAGS}
1171.1Smrg.endif
1181.2Smrg
1191.1SmrgNORMAL_S=	${CC} ${AFLAGS} ${CPPFLAGS} -c $<
1201.1Smrgsrt0.o: srt0.s
1211.1Smrg	${NORMAL_S}
1221.1Smrg
1231.1Smrg# Explicit dependency for this.
1241.18Scdiboot.o: boot.c
125