Makefile.booters revision 1.93
11.93Skamil#	$NetBSD: Makefile.booters,v 1.93 2018/07/25 23:45:32 kamil 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.16SchristosROMSTART= start_rom.o
301.8SdrochnerGENPROMDIR= ${I386_STAND_DIR}/genprom
311.32SthorpejGENPROMOBJDIR!= cd ${GENPROMDIR} && ${PRINTOBJDIR}
321.32SthorpejGENPROM= ${GENPROMOBJDIR}/genprom
331.32Sthorpej
341.8Sdrochner.PATH: ${I386_STAND_DIR}/lib/crt/dos
351.16SchristosDOSSTART= start_dos.o doscommain.o
361.32Sthorpej
371.31Sthorpej.PATH: ${I386_STAND_DIR}/lib/crt/pxe
381.31SthorpejPXESTART= start_pxe.o
391.1Sperry
401.70SyamtCPPFLAGS+= -nostdinc -I${.OBJDIR} -I$S -I${I386_STAND_DIR}/lib -I$S/lib/libsa
411.5SdrochnerCPPFLAGS+= -D_STANDALONE
421.68SlukemLDFLAGS+=  -nostdlib
431.37Sfvdl
441.37Sfvdl# XXX
451.37Sfvdl.if ${MACHINE_ARCH} == "x86_64"
461.37SfvdlCPPFLAGS+=-m32
471.68SlukemLDFLAGS+=-Wl,-m,elf_i386
481.37SfvdlLIBKERN_ARCH=i386
491.37SfvdlKERNMISCMAKEFLAGS="LIBKERN_ARCH=i386"
501.37Sfvdl.endif
511.1Sperry
521.91SchristosCLEANFILES+= ${STARTFILE} ${BASE}.list
531.7Sthorpej
541.1Sperry### find out what to use for libkern
551.1SperryKERN_AS=	library
561.1Sperry.include "${S}/lib/libkern/Makefile.inc"
571.1SperryLIBKERN=	${KERNLIB}
581.1Sperry
591.1Sperry### find out what to use for libz
601.1SperryZ_AS=		library
611.1Sperry.include "${S}/lib/libz/Makefile.inc"
621.1SperryLIBZ=		${ZLIB}
631.1Sperry
641.1Sperry### find out what to use for libsa
651.1SperrySA_AS=		library
661.22SchristosSAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes"
671.1Sperry.include "${S}/lib/libsa/Makefile.inc"
681.1SperryLIBSA=		${SALIB}
691.1Sperry
701.1Sperry### find out what to use for libi386
711.8SdrochnerI386DIR= ${I386_STAND_DIR}/lib
721.1Sperry.include "${I386DIR}/Makefile.inc"
731.1SperryLIBI386=		${I386LIB}
741.17Stron
751.79Sdhollandcleandir distclean: .WAIT cleanlibdir
761.17Stron
771.17Stroncleanlibdir:
781.57Sjmc	-rm -rf lib
791.16Schristos
801.68SlukemLDFLAGS+=-Wl,-M -Wl,-e,start 	# -N does not work properly.
811.16Schristos
821.22SchristosLIBLIST=${LIBI386} ${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN} ${LIBI386} ${LIBSA}
831.22Schristos
841.91SchristosVERSIONMACHINE=x86
851.91Schristos.include "${S}/conf/newvers_stand.mk"
861.7Sthorpej
871.32SthorpejCLEANFILES+= ${BASE}.sym
881.32Sthorpej${BASE}.sym: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
891.64Slukem	${_MKTARGET_LINK}
901.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
911.39Sdsl	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
921.32Sthorpej
931.65SlukemCLEANFILES+= ${BASE}.rom ${BASE}.rom.tmp
941.32Sthorpej${BASE}.rom: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
951.64Slukem	${_MKTARGET_LINK}
961.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
971.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
981.65Slukem	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.rom.tmp
991.65Slukem	${GENPROM} ${ROM_SIZE} < ${BASE}.rom.tmp > ${BASE}.rom || \
1001.83Sjoerg	    ( rm -f ${BASE}.rom && false )
1011.65Slukem	rm -f ${BASE}.rom.tmp
1021.9Sdrochner
1031.32SthorpejCLEANFILES+= ${BASE}.com
1041.32Sthorpej${BASE}.com: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
1051.64Slukem	${_MKTARGET_LINK}
1061.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
1071.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
1081.32Sthorpej	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.com
1091.32Sthorpej
1101.32SthorpejCLEANFILES+= ${BASE}.bin
1111.32Sthorpej${BASE}.bin: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
1121.64Slukem	${_MKTARGET_LINK}
1131.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
1141.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} > ${BASE}.list
1151.32Sthorpej	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.bin
1161.9Sdrochner
1171.9Sdrochner.include <bsd.prog.mk>
1181.88SmattKLINK_MACHINE=	i386
1191.87Smatt.include <bsd.klinks.mk>
120