Makefile.booters revision 1.79
11.79Sdholland# $NetBSD: Makefile.booters,v 1.79 2010/05/27 06:58:13 dholland 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.76Sgmcgarry.if defined(HAVE_GCC) 161.37Sfvdl.if ${MACHINE_ARCH} == "x86_64" 171.58SthorpejCPUFLAGS= -m32 181.66Sdogcow.if ${HAVE_GCC} != 3 191.66SdogcowCPUFLAGS+= -Wno-attributes 201.66Sdogcow.endif 211.37Sfvdl.else 221.63Smrg.if ${HAVE_GCC} == 3 231.63SmrgCPUFLAGS= -mcpu=i386 241.63Smrg.else 251.63SmrgCPUFLAGS= -march=i386 -mtune=i386 -Wno-attributes 261.63Smrg.endif 271.37Sfvdl.endif 281.76Sgmcgarry.endif 291.58SthorpejCOPTS= -Os -ffreestanding 301.1Sperry 311.8SdrochnerI386_STAND_DIR?= $S/arch/i386/stand 321.8Sdrochner 331.52Sdsl.PATH: ${I386_STAND_DIR}/lib 341.32Sthorpej 351.16SchristosROMSTART= start_rom.o 361.8SdrochnerGENPROMDIR= ${I386_STAND_DIR}/genprom 371.32SthorpejGENPROMOBJDIR!= cd ${GENPROMDIR} && ${PRINTOBJDIR} 381.32SthorpejGENPROM= ${GENPROMOBJDIR}/genprom 391.32Sthorpej 401.8Sdrochner.PATH: ${I386_STAND_DIR}/lib/crt/dos 411.16SchristosDOSSTART= start_dos.o doscommain.o 421.32Sthorpej 431.31Sthorpej.PATH: ${I386_STAND_DIR}/lib/crt/pxe 441.31SthorpejPXESTART= start_pxe.o 451.1Sperry 461.70SyamtCPPFLAGS+= -nostdinc -I${.OBJDIR} -I$S -I${I386_STAND_DIR}/lib -I$S/lib/libsa 471.5SdrochnerCPPFLAGS+= -D_STANDALONE 481.68SlukemLDFLAGS+= -nostdlib 491.37Sfvdl 501.37Sfvdl# XXX 511.37Sfvdl.if ${MACHINE_ARCH} == "x86_64" 521.37SfvdlCPPFLAGS+=-m32 531.68SlukemLDFLAGS+=-Wl,-m,elf_i386 541.37SfvdlLIBKERN_ARCH=i386 551.37SfvdlKERNMISCMAKEFLAGS="LIBKERN_ARCH=i386" 561.37Sfvdl.endif 571.1Sperry 581.41SdslCLEANFILES+= ${STARTFILE} vers.c ${BASE}.list 591.26SjdolecekSRCS+= vers.c 601.7Sthorpej 611.44SdrochnerCLEANFILES+= machine x86 621.6Sdrochner 631.61Schs.if !make(obj) && !make(clean) && !make(cleandir) 641.61Schs.BEGIN: 651.61Schs -rm -f machine && ln -s $S/arch/i386/include machine 661.61Schs -rm -f x86 && ln -s $S/arch/x86/include x86 671.53Sdsl.ifdef LIBOBJ 681.61Schs -rm -f lib && ln -s ${LIBOBJ}/lib lib 691.61Schs mkdir -p ${LIBOBJ}/lib 701.61Schs.endif 711.53Sdsl.endif 721.6Sdrochner 731.1Sperry### find out what to use for libkern 741.1SperryKERN_AS= library 751.1Sperry.include "${S}/lib/libkern/Makefile.inc" 761.1SperryLIBKERN= ${KERNLIB} 771.1Sperry 781.1Sperry### find out what to use for libz 791.1SperryZ_AS= library 801.1Sperry.include "${S}/lib/libz/Makefile.inc" 811.1SperryLIBZ= ${ZLIB} 821.1Sperry 831.1Sperry### find out what to use for libsa 841.1SperrySA_AS= library 851.22SchristosSAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes" 861.1Sperry.include "${S}/lib/libsa/Makefile.inc" 871.1SperryLIBSA= ${SALIB} 881.1Sperry 891.1Sperry### find out what to use for libi386 901.8SdrochnerI386DIR= ${I386_STAND_DIR}/lib 911.1Sperry.include "${I386DIR}/Makefile.inc" 921.1SperryLIBI386= ${I386LIB} 931.17Stron 941.79Sdhollandcleandir distclean: .WAIT cleanlibdir 951.17Stron 961.17Stroncleanlibdir: 971.57Sjmc -rm -rf lib 981.16Schristos 991.16Schristos.if ${OBJECT_FMT} == "ELF" 1001.68SlukemLDFLAGS+=-Wl,-M -Wl,-e,start # -N does not work properly. 1011.16Schristos.else 1021.68SlukemLDFLAGS+=-Wl,-N -Wl,-M -Wl,-e,_start 1031.16Schristos.endif 1041.16Schristos 1051.22SchristosLIBLIST=${LIBI386} ${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN} ${LIBI386} ${LIBSA} 1061.22Schristos 1071.78Stsutsuivers.c: ${VERSIONFILE} ${SOURCES} ${S}/conf/newvers_stand.sh 1081.78Stsutsui ${HOST_SH} ${S}/conf/newvers_stand.sh -DM ${VERSIONFILE} x86 ${NEWVERSWHAT} 1091.7Sthorpej 1101.32SthorpejCLEANFILES+= ${BASE}.sym 1111.32Sthorpej${BASE}.sym: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} 1121.64Slukem ${_MKTARGET_LINK} 1131.68Slukem ${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \ 1141.39Sdsl ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list 1151.32Sthorpej 1161.65SlukemCLEANFILES+= ${BASE}.rom ${BASE}.rom.tmp 1171.32Sthorpej${BASE}.rom: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} 1181.64Slukem ${_MKTARGET_LINK} 1191.68Slukem ${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \ 1201.68Slukem ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list 1211.65Slukem ${OBJCOPY} -O binary ${BASE}.sym ${BASE}.rom.tmp 1221.65Slukem ${GENPROM} ${ROM_SIZE} < ${BASE}.rom.tmp > ${BASE}.rom || \ 1231.32Sthorpej rm -f ${BASE}.rom 1241.65Slukem rm -f ${BASE}.rom.tmp 1251.9Sdrochner 1261.32SthorpejCLEANFILES+= ${BASE}.com 1271.32Sthorpej${BASE}.com: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} 1281.64Slukem ${_MKTARGET_LINK} 1291.68Slukem ${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \ 1301.68Slukem ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list 1311.32Sthorpej ${OBJCOPY} -O binary ${BASE}.sym ${BASE}.com 1321.32Sthorpej 1331.32SthorpejCLEANFILES+= ${BASE}.bin 1341.32Sthorpej${BASE}.bin: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} 1351.64Slukem ${_MKTARGET_LINK} 1361.68Slukem ${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \ 1371.68Slukem ${STARTFILE} ${OBJS} ${LIBLIST} > ${BASE}.list 1381.32Sthorpej ${OBJCOPY} -O binary ${BASE}.sym ${BASE}.bin 1391.9Sdrochner 1401.9Sdrochner.include <bsd.prog.mk> 141