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