11.101Srin#	$NetBSD: Makefile.booters,v 1.101 2024/06/29 13:52:39 rin Exp $
21.32Sthorpej
31.93SkamilNOLIBCSANITIZER=
41.92SchristosNOSANITIZER=
51.32Sthorpej.include <bsd.own.mk>
61.1Sperry
71.2SthorpejSTRIPFLAG=
81.1SperryBINMODE=444
91.38Sthorpej
101.38SthorpejLIBCRT0=	# nothing
111.89StsutsuiLIBCRTI=	# nothing
121.38SthorpejLIBCRTBEGIN=	# nothing
131.38SthorpejLIBCRTEND=	# nothing
141.38SthorpejLIBC=		# nothing
151.29Stls
161.33Sthorpej# Make sure we override any optimization options specified by the
171.33Sthorpej# user.
181.37Sfvdl.if ${MACHINE_ARCH} == "x86_64"
191.90SmartinCPUFLAGS= -m32 -march=i386 -mtune=i386
201.37Sfvdl.else
211.81SjakllschCPUFLAGS=  -march=i386 -mtune=i386
221.63Smrg.endif
231.84SjoergCOPTS=	${OPT_SIZE.${ACTIVE_CC}}
241.1Sperry
251.8SdrochnerI386_STAND_DIR?= $S/arch/i386/stand
261.8Sdrochner
271.52Sdsl.PATH: ${I386_STAND_DIR}/lib
281.32Sthorpej
291.70SyamtCPPFLAGS+= -nostdinc -I${.OBJDIR} -I$S -I${I386_STAND_DIR}/lib -I$S/lib/libsa
301.5SdrochnerCPPFLAGS+= -D_STANDALONE
311.68SlukemLDFLAGS+=  -nostdlib
321.37Sfvdl
331.37Sfvdl# XXX
341.37Sfvdl.if ${MACHINE_ARCH} == "x86_64"
351.37SfvdlCPPFLAGS+=-m32
361.68SlukemLDFLAGS+=-Wl,-m,elf_i386
371.37SfvdlLIBKERN_ARCH=i386
381.37SfvdlKERNMISCMAKEFLAGS="LIBKERN_ARCH=i386"
391.37Sfvdl.endif
401.1Sperry
411.91SchristosCLEANFILES+= ${STARTFILE} ${BASE}.list
421.7Sthorpej
431.1Sperry### find out what to use for libkern
441.1SperryKERN_AS=	library
451.1Sperry.include "${S}/lib/libkern/Makefile.inc"
461.1SperryLIBKERN=	${KERNLIB}
471.1Sperry
481.1Sperry### find out what to use for libz
491.1SperryZ_AS=		library
501.1Sperry.include "${S}/lib/libz/Makefile.inc"
511.1SperryLIBZ=		${ZLIB}
521.1Sperry
531.1Sperry### find out what to use for libsa
541.1SperrySA_AS=		library
551.22SchristosSAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes"
561.98SrinSAMISCCPPFLAGS+=-DLIBSA_NFS_IMPLICIT_MOUNT
571.1Sperry.include "${S}/lib/libsa/Makefile.inc"
581.1SperryLIBSA=		${SALIB}
591.1Sperry
601.1Sperry### find out what to use for libi386
611.8SdrochnerI386DIR= ${I386_STAND_DIR}/lib
621.1Sperry.include "${I386DIR}/Makefile.inc"
631.1SperryLIBI386=		${I386LIB}
641.17Stron
651.79Sdhollandcleandir distclean: .WAIT cleanlibdir
661.17Stron
671.17Stroncleanlibdir:
681.57Sjmc	-rm -rf lib
691.16Schristos
701.95SchristosLDFLAGS+=-Wl,-z,noseparate-code -Wl,-M -Wl,-e,start 	# -N does not work properly.
711.16Schristos
721.22SchristosLIBLIST=${LIBI386} ${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN} ${LIBI386} ${LIBSA}
731.22Schristos
741.91SchristosVERSIONMACHINE=x86
751.91Schristos.include "${S}/conf/newvers_stand.mk"
761.7Sthorpej
771.32SthorpejCLEANFILES+= ${BASE}.sym
781.32Sthorpej${BASE}.sym: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
791.64Slukem	${_MKTARGET_LINK}
801.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
811.39Sdsl	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
821.32Sthorpej
831.32SthorpejCLEANFILES+= ${BASE}.com
841.32Sthorpej${BASE}.com: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
851.64Slukem	${_MKTARGET_LINK}
861.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
871.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
881.32Sthorpej	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.com
891.32Sthorpej
901.32SthorpejCLEANFILES+= ${BASE}.bin
911.32Sthorpej${BASE}.bin: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
921.64Slukem	${_MKTARGET_LINK}
931.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
941.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} > ${BASE}.list
951.32Sthorpej	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.bin
961.9Sdrochner
971.96SlukemCWARNFLAGS.gcc+=	${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
981.94Smrg
991.9Sdrochner.include <bsd.prog.mk>
1001.88SmattKLINK_MACHINE=	i386
1011.87Smatt.include <bsd.klinks.mk>
102