xref: /minix/sys/arch/i386/stand/mbr/Makefile.mbr (revision 7f5f010b)
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