Makefile revision 1.10
11.10Smrg#	$NetBSD: Makefile,v 1.10 2003/12/07 09:05:18 mrg 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.1Smrg.PATH:		${S}/arch/sparc64/sparc64
151.1Smrg
161.8SthorpejCOPTS+=		-ffreestanding
171.1SmrgCWARNFLAGS+=	-Wno-main
181.2SmrgCFLAGS+=	${COPTS} ${CEXTRAFLAGS}
191.2SmrgCPPFLAGS+=	-D_STANDALONE -DSUN4U
201.4SthorpejCPPFLAGS+=	-DBOOT_ELF32 -DBOOT_ELF64
211.10SmrgCPPFLAGS+=	-DNETBOOT
221.1Smrg#CPPFLAGS+=	-DNETIF_DEBUG 
231.10Smrg
241.10SmrgLINKS+=		${BINDIR}/ofwboot ${BINDIR}/ofwboot.net
251.1Smrg
261.5StvNOMAN=		# defined
271.1SmrgSTRIPFLAG=
281.1SmrgBINMODE=	444
291.1Smrg
301.1SmrgNEWVERSWHAT=	"OpenFirmware Boot"
311.1Smrg
321.1Smrg#
331.1Smrg# Elf64 defaults to 1MB
341.1Smrg#
351.1Smrg# We may get address conflicts with other bootloaders, say
361.1Smrg# Sun's ufsboot, so we'll pick a reasonably empty address.
371.1Smrg#
381.1SmrgRELOC=		800000
391.1Smrg
401.1SmrgENTRY=		_start
411.1Smrg
421.6SnakayamaCLEANFILES+=	vers.c sparc64 machine
431.1Smrg
441.1SmrgCPPFLAGS+=	-I${CURDIR}/../../.. -I${CURDIR}/../../../.. -I${CURDIR} -I.
451.1SmrgCPPFLAGS+=	-DRELOC=0x${RELOC}
461.1Smrg
471.1Smrg#
481.1Smrg# XXXXX FIXME
491.1Smrg#
501.1SmrgCPPFLAGS+=	-DSPARC_BOOT_AOUT
511.1SmrgCPPFLAGS+=	-DSPARC_BOOT_ELF
521.1SmrgCPPFLAGS+=	-DSPARC_BOOT_UFS
531.1SmrgCPPFLAGS+=	-DSPARC_BOOT_NFS
541.1Smrg#CPPFLAGS+=	-DSPARC_BOOT_HSFS
551.1Smrg
561.1Smrg### find out what to use for libkern
571.1SmrgKERN_AS=	library
581.1Smrg.include "${S}/lib/libkern/Makefile.inc"
591.1SmrgLIBKERN=	${KERNLIB}
601.1Smrg
611.1Smrg### find out what to use for libz
621.1SmrgZ_AS=		library
631.1Smrg.include "${S}/lib/libz/Makefile.inc"
641.1SmrgLIBZ=		${ZLIB}
651.1Smrg
661.1Smrg### find out what to use for libsa
671.1SmrgSA_AS=		library
681.1SmrgSAMISCMAKEFLAGS= SA_USE_CREAD=yes
691.1Smrg.include "${S}/lib/libsa/Makefile.inc"
701.1SmrgLIBSA=		${SALIB}
711.1Smrg
721.2Smrg.NOPATH: machine sparc64
731.2Smrg${SRCS}: machine sparc64
741.1Smrg
751.1Smrgmachine:
761.1Smrg	rm -f machine
771.2Smrg	ln -s sparc64 machine
781.1Smrg
791.2Smrgsparc64:
801.2Smrg	rm -f sparc64
811.2Smrg	ln -s ${.CURDIR}/../../../sparc64/include sparc64
821.7Snakayama
831.7Snakayamacleandir distclean: cleanlibdir
841.7Snakayama
851.7Snakayamacleanlibdir:
861.7Snakayama	rm -rf lib
871.1Smrg
881.1Smrgvers.c: version
891.9Slukem	${HOST_SH} ${S}/conf/newvers_stand.sh ${CURDIR}/version "sparc64" ${NEWVERSWHAT}
901.1Smrg
911.1Smrg.if CROSS
921.1Smrg${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
931.1Smrg	${LD} -N -p -Ttext ${RELOC} -e ${ENTRY} >lderr -o ${PROG} \
941.1Smrg	    ${OBJS} -L${SADST} -lsa -L${ZDST} -lz -L${KERNDST} -lkern # solaris linker
951.1Smrg.else
961.1Smrg${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
971.1Smrg	${LD} -X -N -Ttext ${RELOC} -e ${ENTRY} -o ${PROG} \
981.1Smrg	    ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}	# native linker
991.1Smrg.endif
1001.1Smrg
1011.1Smrg.include <bsd.prog.mk>
1021.1Smrg
1031.2Smrg.if ${MACHINE_ARCH} == "sparc64"
1041.2SmrgAFLAGS+=		-Wa,-Av9a
1051.2SmrgCEXTRAFLAGS?=		-D_LP64
1061.2Smrg.else
1071.2SmrgAFLAGS+=		-Wa,-Av8plusa
1081.2Smrg.endif
1091.2Smrg
1101.1Smrg.if CROSS
1111.2SmrgAFLAGS+=		-x assembler-with-cpp -traditional-cpp -D_LOCORE -D__ELF__
1121.2SmrgCEXTRAFLAGS?=		-D_LP64
1131.1Smrg.else
1141.2SmrgAFLAGS+=		-x assembler-with-cpp -traditional-cpp -D_LOCORE -D__ELF__ ${CEXTRAFLAGS}
1151.1Smrg.endif
1161.2Smrg
1171.1SmrgNORMAL_S=	${CC} ${AFLAGS} ${CPPFLAGS} -c $<
1181.1Smrgsrt0.o: srt0.s
1191.1Smrg	${NORMAL_S}
1201.1Smrg
1211.1Smrg# Explicit dependency for this.
1221.1Smrgboot.o: boot.c elfXX_exec.c
123