Makefile.inc revision 1.11
1#	$NetBSD: Makefile.inc,v 1.11 2013/06/27 03:37:21 matt Exp $
2
3.include <bsd.own.mk>
4
5COMMON_DIR:=	${.CURDIR}/common
6.PATH:		${COMMON_DIR}
7
8CPPFLAGS+=	-I${NETBSDSRCDIR}/libexec/ld.elf_so -I${COMMON_DIR} -I.
9
10OBJS+=		crt0.o gcrt0.o crti.o crtn.o
11OBJS+=		crtbegin.o crtbeginS.o crtend.o
12
13realall: ${OBJS}
14
15.if exists(${ARCHDIR}/crtbegin.S)
16crtbegin.o: crtbegin.S
17	${_MKTARGET_COMPILE}
18	${COMPILE.S} ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o
19.else
20crtbegin.o: crtbegin.c crtbegin.h
21	${_MKTARGET_COMPILE}
22	${COMPILE.c} ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o
23.endif
24	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
25	rm -f ${.TARGET}.o
26.if ${MKSTRIPIDENT} != "no"
27	${OBJCOPY} -R .ident ${.TARGET}
28.endif
29
30.if exists(${ARCHDIR}/crtbegin.S)
31crtbeginS.o: crtbegin.S
32	${_MKTARGET_COMPILE}
33	${COMPILE.S} -DPIC -DSHARED ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o
34.else
35crtbeginS.o: crtbegin.c crtbegin.h
36	${_MKTARGET_COMPILE}
37	${COMPILE.c} -fPIC -DPIC -DSHARED ${COMMON_DIR}/crtbegin.c -o ${.TARGET}.o
38.endif
39	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
40	rm -f ${.TARGET}.o
41.if ${MKSTRIPIDENT} != "no"
42	${OBJCOPY} -R .ident ${.TARGET}
43.endif
44
45crtend.o: crtend.S
46	${_MKTARGET_COMPILE}
47	${COMPILE.S} ${ARCHDIR}/crtend.S -o ${.TARGET}.o
48	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
49	rm -f ${.TARGET}.o
50.if ${MKSTRIPIDENT} != "no"
51	${OBJCOPY} -R .ident ${.TARGET}
52.endif
53
54.if ${MKPIC} != "no"
55PICFLAGS=	-fPIC
56.else
57PICFLAGS=
58.endif
59
60crt0.o: crt0.S crt0-common.c
61	${_MKTARGET_COMPILE}
62	${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
63	${COMPILE.c} ${PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
64	${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o
65	rm -f ${.TARGET}.S.o ${.TARGET}.c.o
66.if ${MKSTRIPIDENT} != "no"
67	${OBJCOPY} -R .ident ${.TARGET}
68.endif
69
70gcrt0.o: crt0.S crt0-common.c
71	${_MKTARGET_COMPILE}
72	${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
73	${COMPILE.c} ${PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
74	${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o
75	rm -f ${.TARGET}.S.o ${.TARGET}.c.o
76.if ${MKSTRIPIDENT} != "no"
77	${OBJCOPY} -R .ident ${.TARGET}
78.endif
79
80sysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS}
81	${_MKTARGET_CREATE}
82	cat ${COMMON_DIR}/sysident_assym.cf | \
83	    ${TOOL_GENASSYM} -- ${CC} ${CFLAGS:N-Wa,*} ${CPPFLAGS} ${PROF} \
84	    > sysident_assym.h.tmp && \
85	mv -f sysident_assym.h.tmp sysident_assym.h
86
87CLEANFILES+=	sysident_assym.h
88
89crti.o: crti.S sysident_assym.h
90crtn.o: crtn.S
91
92FILES=${OBJS}
93FILESDIR=${LIBDIR}
94CLEANFILES+=${OBJS}
95SYMLINKS+=	crtbegin.o ${LIBDIR}/crtbeginT.o
96SYMLINKS+=	crtend.o ${LIBDIR}/crtendS.o
97
98.include <bsd.prog.mk>
99