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