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