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