Makefile.booters revision 1.88
11.88Smatt#	$NetBSD: Makefile.booters,v 1.88 2013/08/21 15:24:27 matt Exp $
21.32Sthorpej
31.32Sthorpej.include <bsd.own.mk>
41.1Sperry
51.2SthorpejSTRIPFLAG=
61.1SperryBINMODE=444
71.38Sthorpej
81.38SthorpejLIBCRT0=	# nothing
91.38SthorpejLIBCRTBEGIN=	# nothing
101.38SthorpejLIBCRTEND=	# nothing
111.38SthorpejLIBC=		# nothing
121.29Stls
131.33Sthorpej# Make sure we override any optimization options specified by the
141.33Sthorpej# user.
151.37Sfvdl.if ${MACHINE_ARCH} == "x86_64"
161.58SthorpejCPUFLAGS= -m32
171.37Sfvdl.else
181.81SjakllschCPUFLAGS=  -march=i386 -mtune=i386
191.63Smrg.endif
201.84SjoergCOPTS=	${OPT_SIZE.${ACTIVE_CC}}
211.1Sperry
221.8SdrochnerI386_STAND_DIR?= $S/arch/i386/stand
231.8Sdrochner
241.52Sdsl.PATH: ${I386_STAND_DIR}/lib
251.32Sthorpej
261.16SchristosROMSTART= start_rom.o
271.8SdrochnerGENPROMDIR= ${I386_STAND_DIR}/genprom
281.32SthorpejGENPROMOBJDIR!= cd ${GENPROMDIR} && ${PRINTOBJDIR}
291.32SthorpejGENPROM= ${GENPROMOBJDIR}/genprom
301.32Sthorpej
311.8Sdrochner.PATH: ${I386_STAND_DIR}/lib/crt/dos
321.16SchristosDOSSTART= start_dos.o doscommain.o
331.32Sthorpej
341.31Sthorpej.PATH: ${I386_STAND_DIR}/lib/crt/pxe
351.31SthorpejPXESTART= start_pxe.o
361.1Sperry
371.70SyamtCPPFLAGS+= -nostdinc -I${.OBJDIR} -I$S -I${I386_STAND_DIR}/lib -I$S/lib/libsa
381.5SdrochnerCPPFLAGS+= -D_STANDALONE
391.68SlukemLDFLAGS+=  -nostdlib
401.37Sfvdl
411.37Sfvdl# XXX
421.37Sfvdl.if ${MACHINE_ARCH} == "x86_64"
431.37SfvdlCPPFLAGS+=-m32
441.68SlukemLDFLAGS+=-Wl,-m,elf_i386
451.37SfvdlLIBKERN_ARCH=i386
461.37SfvdlKERNMISCMAKEFLAGS="LIBKERN_ARCH=i386"
471.37Sfvdl.endif
481.1Sperry
491.41SdslCLEANFILES+= ${STARTFILE} vers.c ${BASE}.list
501.26SjdolecekSRCS+=	vers.c
511.7Sthorpej
521.1Sperry### find out what to use for libkern
531.1SperryKERN_AS=	library
541.1Sperry.include "${S}/lib/libkern/Makefile.inc"
551.1SperryLIBKERN=	${KERNLIB}
561.1Sperry
571.1Sperry### find out what to use for libz
581.1SperryZ_AS=		library
591.1Sperry.include "${S}/lib/libz/Makefile.inc"
601.1SperryLIBZ=		${ZLIB}
611.1Sperry
621.1Sperry### find out what to use for libsa
631.1SperrySA_AS=		library
641.22SchristosSAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes"
651.1Sperry.include "${S}/lib/libsa/Makefile.inc"
661.1SperryLIBSA=		${SALIB}
671.1Sperry
681.1Sperry### find out what to use for libi386
691.8SdrochnerI386DIR= ${I386_STAND_DIR}/lib
701.1Sperry.include "${I386DIR}/Makefile.inc"
711.1SperryLIBI386=		${I386LIB}
721.17Stron
731.79Sdhollandcleandir distclean: .WAIT cleanlibdir
741.17Stron
751.17Stroncleanlibdir:
761.57Sjmc	-rm -rf lib
771.16Schristos
781.68SlukemLDFLAGS+=-Wl,-M -Wl,-e,start 	# -N does not work properly.
791.16Schristos
801.22SchristosLIBLIST=${LIBI386} ${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN} ${LIBI386} ${LIBSA}
811.22Schristos
821.78Stsutsuivers.c: ${VERSIONFILE} ${SOURCES} ${S}/conf/newvers_stand.sh
831.82Sjoerg	${HOST_SH} ${S}/conf/newvers_stand.sh ${VERSIONFILE} x86 ${NEWVERSWHAT}
841.7Sthorpej
851.32SthorpejCLEANFILES+= ${BASE}.sym
861.32Sthorpej${BASE}.sym: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
871.64Slukem	${_MKTARGET_LINK}
881.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
891.39Sdsl	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
901.32Sthorpej
911.65SlukemCLEANFILES+= ${BASE}.rom ${BASE}.rom.tmp
921.32Sthorpej${BASE}.rom: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
931.64Slukem	${_MKTARGET_LINK}
941.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
951.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
961.65Slukem	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.rom.tmp
971.65Slukem	${GENPROM} ${ROM_SIZE} < ${BASE}.rom.tmp > ${BASE}.rom || \
981.83Sjoerg	    ( rm -f ${BASE}.rom && false )
991.65Slukem	rm -f ${BASE}.rom.tmp
1001.9Sdrochner
1011.32SthorpejCLEANFILES+= ${BASE}.com
1021.32Sthorpej${BASE}.com: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
1031.64Slukem	${_MKTARGET_LINK}
1041.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
1051.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list
1061.32Sthorpej	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.com
1071.32Sthorpej
1081.32SthorpejCLEANFILES+= ${BASE}.bin
1091.32Sthorpej${BASE}.bin: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386}
1101.64Slukem	${_MKTARGET_LINK}
1111.68Slukem	${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \
1121.68Slukem	    ${STARTFILE} ${OBJS} ${LIBLIST} > ${BASE}.list
1131.32Sthorpej	${OBJCOPY} -O binary ${BASE}.sym ${BASE}.bin
1141.9Sdrochner
1151.9Sdrochner.include <bsd.prog.mk>
1161.88SmattKLINK_MACHINE=	i386
1171.87Smatt.include <bsd.klinks.mk>
118