Makefile.booters revision 1.92
11.92Schristos#	$NetBSD: Makefile.booters,v 1.92 2018/06/02 14:30:06 christos Exp $
21.32Sthorpej
31.92SchristosNOSANITIZER=
41.32Sthorpej.include <bsd.own.mk>
51.1Sperry
61.2SthorpejSTRIPFLAG=
71.1SperryBINMODE=444
81.38Sthorpej
91.38SthorpejLIBCRT0=	# nothing
101.89StsutsuiLIBCRTI=	# nothing
111.38SthorpejLIBCRTBEGIN=	# nothing
121.38SthorpejLIBCRTEND=	# nothing
131.38SthorpejLIBC=		# nothing
141.29Stls
151.33Sthorpej# Make sure we override any optimization options specified by the
161.33Sthorpej# user.
171.37Sfvdl.if ${MACHINE_ARCH} == "x86_64"
181.90SmartinCPUFLAGS= -m32 -march=i386 -mtune=i386
191.37Sfvdl.else
201.81SjakllschCPUFLAGS=  -march=i386 -mtune=i386
211.63Smrg.endif
221.84SjoergCOPTS=	${OPT_SIZE.${ACTIVE_CC}}
231.1Sperry
241.8SdrochnerI386_STAND_DIR?= $S/arch/i386/stand
251.8Sdrochner
261.52Sdsl.PATH: ${I386_STAND_DIR}/lib
271.32Sthorpej
281.16SchristosROMSTART= start_rom.o
291.8SdrochnerGENPROMDIR= ${I386_STAND_DIR}/genprom
301.32SthorpejGENPROMOBJDIR!= cd ${GENPROMDIR} && ${PRINTOBJDIR}
311.32SthorpejGENPROM= ${GENPROMOBJDIR}/genprom
321.32Sthorpej
331.8Sdrochner.PATH: ${I386_STAND_DIR}/lib/crt/dos
341.16SchristosDOSSTART= start_dos.o doscommain.o
351.32Sthorpej
361.31Sthorpej.PATH: ${I386_STAND_DIR}/lib/crt/pxe
371.31SthorpejPXESTART= start_pxe.o
381.1Sperry
391.70SyamtCPPFLAGS+= -nostdinc -I${.OBJDIR} -I$S -I${I386_STAND_DIR}/lib -I$S/lib/libsa
401.5SdrochnerCPPFLAGS+= -D_STANDALONE
411.68SlukemLDFLAGS+=  -nostdlib
421.37Sfvdl
431.37Sfvdl# XXX
441.37Sfvdl.if ${MACHINE_ARCH} == "x86_64"
451.37SfvdlCPPFLAGS+=-m32
461.68SlukemLDFLAGS+=-Wl,-m,elf_i386
471.37SfvdlLIBKERN_ARCH=i386
481.37SfvdlKERNMISCMAKEFLAGS="LIBKERN_ARCH=i386"
491.37Sfvdl.endif
501.1Sperry
511.91SchristosCLEANFILES+= ${STARTFILE} ${BASE}.list
521.7Sthorpej
531.1Sperry### find out what to use for libkern
541.1SperryKERN_AS=	library
551.1Sperry.include "${S}/lib/libkern/Makefile.inc"
561.1SperryLIBKERN=	${KERNLIB}
571.1Sperry
581.1Sperry### find out what to use for libz
591.1SperryZ_AS=		library
601.1Sperry.include "${S}/lib/libz/Makefile.inc"
611.1SperryLIBZ=		${ZLIB}
621.1Sperry
631.1Sperry### find out what to use for libsa
641.1SperrySA_AS=		library
651.22SchristosSAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes"
661.1Sperry.include "${S}/lib/libsa/Makefile.inc"
671.1SperryLIBSA=		${SALIB}
681.1Sperry
691.1Sperry### find out what to use for libi386
701.8SdrochnerI386DIR= ${I386_STAND_DIR}/lib
711.1Sperry.include "${I386DIR}/Makefile.inc"
721.1SperryLIBI386=		${I386LIB}
731.17Stron
741.79Sdhollandcleandir distclean: .WAIT cleanlibdir
751.17Stron
761.17Stroncleanlibdir:
771.57Sjmc	-rm -rf lib
781.16Schristos
791.68SlukemLDFLAGS+=-Wl,-M -Wl,-e,start 	# -N does not work properly.
801.16Schristos
811.22SchristosLIBLIST=${LIBI386} ${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN} ${LIBI386} ${LIBSA}
821.22Schristos
831.91SchristosVERSIONMACHINE=x86
841.91Schristos.include "${S}/conf/newvers_stand.mk"
851.7Sthorpej
861.32SthorpejCLEANFILES+= ${BASE}.sym
871.32Sthorpej${BASE}.sym: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
881.64Slukem	${_MKTARGET_LINK}
891.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
901.39Sdsl	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
911.32Sthorpej
921.65SlukemCLEANFILES+= ${BASE}.rom ${BASE}.rom.tmp
931.32Sthorpej${BASE}.rom: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
941.64Slukem	${_MKTARGET_LINK}
951.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
961.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
971.65Slukem	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.rom.tmp
981.65Slukem	${GENPROM} ${ROM_SIZE} < ${BASE}.rom.tmp > ${BASE}.rom || \
991.83Sjoerg	    ( rm -f ${BASE}.rom && false )
1001.65Slukem	rm -f ${BASE}.rom.tmp
1011.9Sdrochner
1021.32SthorpejCLEANFILES+= ${BASE}.com
1031.32Sthorpej${BASE}.com: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
1041.64Slukem	${_MKTARGET_LINK}
1051.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
1061.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
1071.32Sthorpej	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.com
1081.32Sthorpej
1091.32SthorpejCLEANFILES+= ${BASE}.bin
1101.32Sthorpej${BASE}.bin: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
1111.64Slukem	${_MKTARGET_LINK}
1121.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
1131.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} > ${BASE}.list
1141.32Sthorpej	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.bin
1151.9Sdrochner
1161.9Sdrochner.include <bsd.prog.mk>
1171.88SmattKLINK_MACHINE=	i386
1181.87Smatt.include <bsd.klinks.mk>
119