1 1.101 rin # $NetBSD: Makefile.booters,v 1.101 2024/06/29 13:52:39 rin Exp $ 2 1.32 thorpej 3 1.93 kamil NOLIBCSANITIZER= 4 1.92 christos NOSANITIZER= 5 1.32 thorpej .include <bsd.own.mk> 6 1.1 perry 7 1.2 thorpej STRIPFLAG= 8 1.1 perry BINMODE=444 9 1.38 thorpej 10 1.38 thorpej LIBCRT0= # nothing 11 1.89 tsutsui LIBCRTI= # nothing 12 1.38 thorpej LIBCRTBEGIN= # nothing 13 1.38 thorpej LIBCRTEND= # nothing 14 1.38 thorpej LIBC= # nothing 15 1.29 tls 16 1.33 thorpej # Make sure we override any optimization options specified by the 17 1.33 thorpej # user. 18 1.37 fvdl .if ${MACHINE_ARCH} == "x86_64" 19 1.90 martin CPUFLAGS= -m32 -march=i386 -mtune=i386 20 1.37 fvdl .else 21 1.81 jakllsch CPUFLAGS= -march=i386 -mtune=i386 22 1.63 mrg .endif 23 1.84 joerg COPTS= ${OPT_SIZE.${ACTIVE_CC}} 24 1.1 perry 25 1.8 drochner I386_STAND_DIR?= $S/arch/i386/stand 26 1.8 drochner 27 1.52 dsl .PATH: ${I386_STAND_DIR}/lib 28 1.32 thorpej 29 1.70 yamt CPPFLAGS+= -nostdinc -I${.OBJDIR} -I$S -I${I386_STAND_DIR}/lib -I$S/lib/libsa 30 1.5 drochner CPPFLAGS+= -D_STANDALONE 31 1.68 lukem LDFLAGS+= -nostdlib 32 1.37 fvdl 33 1.37 fvdl # XXX 34 1.37 fvdl .if ${MACHINE_ARCH} == "x86_64" 35 1.37 fvdl CPPFLAGS+=-m32 36 1.68 lukem LDFLAGS+=-Wl,-m,elf_i386 37 1.37 fvdl LIBKERN_ARCH=i386 38 1.37 fvdl KERNMISCMAKEFLAGS="LIBKERN_ARCH=i386" 39 1.37 fvdl .endif 40 1.1 perry 41 1.91 christos CLEANFILES+= ${STARTFILE} ${BASE}.list 42 1.7 thorpej 43 1.1 perry ### find out what to use for libkern 44 1.1 perry KERN_AS= library 45 1.1 perry .include "${S}/lib/libkern/Makefile.inc" 46 1.1 perry LIBKERN= ${KERNLIB} 47 1.1 perry 48 1.1 perry ### find out what to use for libz 49 1.1 perry Z_AS= library 50 1.1 perry .include "${S}/lib/libz/Makefile.inc" 51 1.1 perry LIBZ= ${ZLIB} 52 1.1 perry 53 1.1 perry ### find out what to use for libsa 54 1.1 perry SA_AS= library 55 1.22 christos SAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes" 56 1.98 rin SAMISCCPPFLAGS+=-DLIBSA_NFS_IMPLICIT_MOUNT 57 1.1 perry .include "${S}/lib/libsa/Makefile.inc" 58 1.1 perry LIBSA= ${SALIB} 59 1.1 perry 60 1.1 perry ### find out what to use for libi386 61 1.8 drochner I386DIR= ${I386_STAND_DIR}/lib 62 1.1 perry .include "${I386DIR}/Makefile.inc" 63 1.1 perry LIBI386= ${I386LIB} 64 1.17 tron 65 1.79 dholland cleandir distclean: .WAIT cleanlibdir 66 1.17 tron 67 1.17 tron cleanlibdir: 68 1.57 jmc -rm -rf lib 69 1.16 christos 70 1.95 christos LDFLAGS+=-Wl,-z,noseparate-code -Wl,-M -Wl,-e,start # -N does not work properly. 71 1.16 christos 72 1.22 christos LIBLIST=${LIBI386} ${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN} ${LIBI386} ${LIBSA} 73 1.22 christos 74 1.91 christos VERSIONMACHINE=x86 75 1.91 christos .include "${S}/conf/newvers_stand.mk" 76 1.7 thorpej 77 1.32 thorpej CLEANFILES+= ${BASE}.sym 78 1.32 thorpej ${BASE}.sym: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} 79 1.64 lukem ${_MKTARGET_LINK} 80 1.68 lukem ${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \ 81 1.39 dsl ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list 82 1.32 thorpej 83 1.32 thorpej CLEANFILES+= ${BASE}.com 84 1.32 thorpej ${BASE}.com: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} 85 1.64 lukem ${_MKTARGET_LINK} 86 1.68 lukem ${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \ 87 1.68 lukem ${STARTFILE} ${OBJS} ${LIBLIST} >${BASE}.list 88 1.32 thorpej ${OBJCOPY} -O binary ${BASE}.sym ${BASE}.com 89 1.32 thorpej 90 1.32 thorpej CLEANFILES+= ${BASE}.bin 91 1.32 thorpej ${BASE}.bin: ${STARTFILE} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} 92 1.64 lukem ${_MKTARGET_LINK} 93 1.68 lukem ${CC} -o ${BASE}.sym ${LDFLAGS} -Wl,-Ttext,${RELOC} \ 94 1.68 lukem ${STARTFILE} ${OBJS} ${LIBLIST} > ${BASE}.list 95 1.32 thorpej ${OBJCOPY} -O binary ${BASE}.sym ${BASE}.bin 96 1.9 drochner 97 1.96 lukem CWARNFLAGS.gcc+= ${CC_WNO_ADDRESS_OF_PACKED_MEMBER} 98 1.94 mrg 99 1.9 drochner .include <bsd.prog.mk> 100 1.88 matt KLINK_MACHINE= i386 101 1.87 matt .include <bsd.klinks.mk> 102