1# $NetBSD: Makefile.mbr,v 1.19 2014/01/12 15:26:29 tsutsui Exp $ 2 3S= ${.CURDIR}/../../../../.. 4 5NOMAN= # defined 6 7LIBCRT0= # nothing 8LIBCRTI= # nothing 9LIBCRTBEGIN= # nothing 10LIBCRTEND= # nothing 11LIBC= # nothing 12 13PIE_CFLAGS= 14PIE_LDFLAGS= 15PIE_AFLAGS= 16 17.if defined(__MINIX) 18USE_BITCODE=no 19.endif # defined(__MINIX) 20 21.include <bsd.own.mk> 22 23STRIPFLAG= # override 24 25SRCS?= mbr.S 26 27BINDIR= /usr/mdec 28BINMODE= 444 29 30.PATH: ${.CURDIR}/.. 31 32LDFLAGS+= -nostdlib -Wl,-e,start 33CPPFLAGS+= -I. -I${.CURDIR}/../../lib -I${S} 34 35.if ${MACHINE_ARCH} == "x86_64" 36LDFLAGS+= -Wl,-m,elf_i386 37AFLAGS+= -m32 38.endif 39 40BUILDSYMLINKS+= $S/arch/i386/include machine \ 41 $S/arch/x86/include x86 42 43DPSRCS+= machine x86 44 45CLEANFILES+= ${PROG}.tmp 46 47LOADADDR= 0x8800 48 49AFLAGS.mbr.S= ${${ACTIVE_CC} == "clang":?-no-integrated-as:} 50AFLAGS.gpt.S= ${${ACTIVE_CC} == "clang":?-no-integrated-as:} 51 52.if defined(__MINIX) 53CPPFLAGS+= -DLOADADDR=${LOADADDR} 54 55# LSC: Still required by our old binutils 56AFLAGS.mbr.S+= -Wa,--divide 57 58BUILDSYMLINKS+= \ 59 ${NETBSDSRCDIR}/minix/include/arch/i386/include/stackframe.h machine/stackframe.h \ 60 ${NETBSDSRCDIR}/minix/include/arch/i386/include/fpu.h machine/fpu.h 61 62DPSRCS+= machine/stackframe.h machine/fpu.h 63.endif # defined(__MINIX) 64 65${PROG}: ${OBJS} 66 ${_MKTARGET_LINK} 67.if defined(__MINIX) 68 ${CC} -o ${PROG}.tmp ${LDFLAGS} -Wl,--section-start=.text=${LOADADDR} ${OBJS} 69.else 70 ${CC} -o ${PROG}.tmp ${LDFLAGS} -Wl,-Ttext,${LOADADDR} ${OBJS} 71.endif # defined(__MINIX) 72 @ set -- $$( ${NM} -t d ${PROG}.tmp | grep '\<mbr_space\>' \ 73 | ${TOOL_SED} 's/^0*//' ); \ 74 echo "#### There are $$1 free bytes in ${PROG}" 75 ${OBJCOPY} -O binary ${PROG}.tmp ${PROG} 76 rm -f ${PROG}.tmp 77 78.include <bsd.prog.mk> 79