1#	$NetBSD: Makefile.inc,v 1.5 2012/01/31 20:03:50 uwe 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
15crtbegin.o: crtbegin.S
16	${_MKTARGET_COMPILE}
17	${COMPILE.S} ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o
18	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
19	rm -f ${.TARGET}.o
20.if ${MKSTRIPIDENT} != "no"
21	${OBJCOPY} -R .ident ${.TARGET}
22.endif
23
24crtbeginS.o: crtbegin.S
25	${_MKTARGET_COMPILE}
26	${COMPILE.S} -DPIC -DSHARED ${ARCHDIR}/crtbegin.S -o ${.TARGET}.o
27	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
28	rm -f ${.TARGET}.o
29.if ${MKSTRIPIDENT} != "no"
30	${OBJCOPY} -R .ident ${.TARGET}
31.endif
32
33crtend.o: crtend.S
34	${_MKTARGET_COMPILE}
35	${COMPILE.S} ${ARCHDIR}/crtend.S -o ${.TARGET}.o
36	${LD} -x -r -o ${.TARGET} ${.TARGET}.o
37	rm -f ${.TARGET}.o
38.if ${MKSTRIPIDENT} != "no"
39	${OBJCOPY} -R .ident ${.TARGET}
40.endif
41
42.if ${MKPIC} != "no"
43PICFLAGS=	-fPIC
44.else
45PICFLAGS=
46.endif
47
48crt0.o: crt0.S crt0-common.c
49	${_MKTARGET_COMPILE}
50	${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
51	${COMPILE.c} ${PICFLAGS} ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
52	${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o
53	rm -f ${.TARGET}.S.o ${.TARGET}.c.o
54.if ${MKSTRIPIDENT} != "no"
55	${OBJCOPY} -R .ident ${.TARGET}
56.endif
57
58gcrt0.o: crt0.S crt0-common.c
59	${_MKTARGET_COMPILE}
60	${COMPILE.S} ${ARCHDIR}/crt0.S -o ${.TARGET}.S.o
61	${COMPILE.c} ${PICFLAGS} -DMCRT0 ${COMMON_DIR}/crt0-common.c -o ${.TARGET}.c.o
62	${LD} -x -r -o ${.TARGET} ${.TARGET}.S.o ${.TARGET}.c.o
63	rm -f ${.TARGET}.S.o ${.TARGET}.c.o
64.if ${MKSTRIPIDENT} != "no"
65	${OBJCOPY} -R .ident ${.TARGET}
66.endif
67
68sysident_assym.h: ${GENASSYM_CONF} ${GENASSYM_EXTRAS}
69	${_MKTARGET_CREATE}
70	cat ${COMMON_DIR}/sysident_assym.cf | \
71	    ${TOOL_GENASSYM} -- ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} \
72	    > sysident_assym.h.tmp && \
73	mv -f sysident_assym.h.tmp sysident_assym.h
74
75CLEANFILES+=	sysident_assym.h
76
77crti.o: crti.S sysident_assym.h
78crtn.o: crtn.S
79
80FILES=${OBJS}
81FILESDIR=${LIBDIR}
82CLEANFILES+=${OBJS}
83SYMLINKS+=	crtbegin.o ${LIBDIR}/crtbeginT.o
84SYMLINKS+=	crtend.o ${LIBDIR}/crtendS.o
85
86.include <bsd.prog.mk>
87