xref: /minix/external/gpl3/gcc/lib/libobjc/Makefile (revision 84d9c625)
1#	$NetBSD: Makefile,v 1.7 2013/08/22 00:16:54 matt Exp $
2
3REQUIRETOOLS=	yes
4NOLINT=		# defined
5
6UNSUPPORTED_COMPILER.clang=	# defined
7
8.include <bsd.own.mk>
9
10LIB=		objc
11GCC_MACHINE_ARCH?=	${MACHINE_ARCH:S/earmv5/earm/}
12
13.if ${MKGCC} != "no"
14
15SHLIB_MAJOR=	3
16SHLIB_MINOR=	0
17
18# XXX just while all platforms defs.mk are updated..
19.if exists(${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk)
20# Machine-dependent definitions (include file names).
21.include "${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk"
22EXTRA_FAKEHEADERS=
23.else
24# Machine-independent definitions (include file names).
25.include "${.CURDIR}/defs.mk"
26EXTRA_FAKEHEADERS=
27.endif
28
29LIBGCCOBJ!=    cd ${.CURDIR}/../libgcc/libgcc && ${PRINTOBJDIR}
30
31DIST=		${NETBSDSRCDIR}/external/gpl3/gcc/dist
32GNUHOSTDIST=	${NETBSDSRCDIR}/external/gpl3/gcc/dist
33GCCARCH=	${NETBSDSRCDIR}/external/gpl3/gcc/usr.bin/gcc/arch/${GCC_MACHINE_ARCH}
34LIBOBJCARCH=	${NETBSDSRCDIR}/external/gpl3/gcc/lib/libobjc/arch/${GCC_MACHINE_ARCH}
35GCCLIBXX=	${NETBSDSRCDIR}/external/gpl3/gcc/lib/libstdc++-v3/arch/${GCC_MACHINE_ARCH}
36
37SRCS=		${G_OBJS:N[A-Z]*:Nlinking.lo:.lo=.c} ${G_OBJS:M[A-Z]*:.lo=.m} linking.m
38
39GCPPFLAGS=	${G_ALL_CFLAGS} ${G_INCLUDES}
40CPPFLAGS+=	-I. -I${.CURDIR}/arch/${GCC_MACHINE_ARCH}
41CPPFLAGS+=	-I${GCCARCH} ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*}
42CPPFLAGS+=	-I${GCCLIBXX}
43
44BUILDSYMLINKS=	${.CURDIR}/../libstdc++-v3/arch/${GCC_MACHINE_ARCH} bits
45DPSRCS+=	bits
46
47.for f in Protocol.m Object.m NXConstStr.m linking.m
48OBJCOPTS.${f}=	-fgnu-runtime
49.endfor
50
51.for f in thr.c thr-objc.c
52COPTS.${f}=	-Wno-missing-noreturn
53.endfor
54
55COPTS+=		-fno-strict-aliasing -fexceptions
56OBJCOPTS+=	-fno-strict-aliasing -fexceptions
57
58OBJCOPTS.Object.m = -Wno-stack-protector
59COPTS.sendmsg.c = -Wno-stack-protector
60
61INCS=		${G_OBJC_H}
62INCSDIR=	/usr/include/objc
63
64DPSRCS+=	runtime-info.h
65CLEANFILES+=	rtscratch rtscratch.s runtime-info.h
66runtime-info.h:
67	${_MKTARGET_CREATE}
68	touch rtscratch
69	`${OBJC} --print-prog-name=cc1obj` -print-objc-runtime-info rtscratch >$@
70
71.PATH: ${DIST}/libobjc ${DIST}/libobjc/objc
72
73${OBJS} ${POBJS} ${SOBJS}: runtime-info.h
74
75${SRCS}: tconfig.h unwind.h options.h
76
77BUILDSYMLINKS+=	${G_UNWIND_H} unwind.h
78DPSRCS+=	unwind.h
79
80.include "../Makefile.tconfigh"
81.include "../Makefile.hacks"
82
83# XXX just while all platforms defs.mk are updated..
84.if exists(${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk)
85optionlist: ${G_ALL_OPT_FILES} ${LIBOBJCARCH}/defs.mk Makefile ${DIST}/gcc/opt-gather.awk
86	${TOOL_AWK} -f ${DIST}/gcc/opt-gather.awk ${G_ALL_OPT_FILES} \
87		> ${.TARGET}
88
89options.h: optionlist ${DIST}/gcc/opt-functions.awk ${DIST}/gcc/opth-gen.awk
90	${TOOL_AWK} -f ${DIST}/gcc/opt-functions.awk \
91		-f ${DIST}/gcc/opth-gen.awk \
92		< optionlist > ${.TARGET}
93
94CLEANFILES+=	options.h optionlist
95.endif
96
97.include <bsd.lib.mk>
98
99.else
100.include <bsd.prog.mk>	# do nothing
101.endif
102
103COPTS.archive.c+=	-Wno-error
104COPTS.sendmsg.c+=	-Wno-error
105