xref: /netbsd-src/external/gpl3/gcc.old/lib/libstdc++-v3/Makefile (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
1#	$NetBSD: Makefile,v 1.2 2014/06/14 20:49:37 mrg Exp $
2
3REQUIRETOOLS=	yes
4NOLINT=		# defined
5
6.include <bsd.init.mk>
7
8.include "Makefile.inc"
9
10LIB=		stdc++
11LDADD=		-lgcc_s
12
13LIBDPLIBS+=	m ${.CURDIR}/../../../../../lib/libm
14
15UNSUPPORTED_COMPILER.clang=	# defined
16CWARNFLAGS.clang+=	-Wno-logical-op-parentheses \
17			-Wno-deprecated-writable-strings -Wno-parentheses
18
19.if exists(${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk) && ${MKGCC} != "no"
20.include "${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk"
21
22SHLIB_MAJOR=	7
23SHLIB_MINOR=	1
24
25SUBDIR=		include
26
27.include "${.CURDIR}/../libsupc++/Makefile.common"
28
29SRCS=		${LIBSUPCXXSRCS} ${LIBSTDCXXSRCS}
30# affects profiling; can't switch it off just for profiling easily.
31#CXXFLAGS+=	${G_SECTION_FLAGS}
32#CXXFLAGS+=	-ffunction-sections -fdata-sections
33CXXFLAGS+=	-fno-implicit-templates -fdiagnostics-show-location=once
34CPPFLAGS+=	-I${DIST}/libstdc++-v3/include
35CPPFLAGS+=	-I${.CURDIR}/arch/${GCC_MACHINE_ARCH}
36CPPFLAGS+=	-I${.CURDIR}/../libgomp/arch/${GCC_MACHINE_ARCH}
37
38CONF=		${DIST}/libstdc++-v3/config
39
40#BUILDSYMLINKS+=	${CONF}/io/basic_file_stdio.cc		basic_file.cc \
41#		${CONF}/locale/generic/c_locale.cc	c++locale.cc
42
43GLIBCPP_INCLUDE_DIR=	${DESTDIR}/usr/include/g++
44
45COPTS.cp-demangle.c = -Wno-stack-protector
46COPTS.fstream-inst.cc = -Wno-stack-protector
47COPTS.locale-inst.cc = -Wno-stack-protector
48COPTS.misc-inst.cc = -Wno-stack-protector
49COPTS.ostream-inst.cc = -Wno-stack-protector
50COPTS.valarray-inst.cc = -Wno-stack-protector
51COPTS.wlocale-inst.cc = -Wno-stack-protector
52COPTS.concept-inst.cc=	-D_GLIBCPP_CONCEPT_CHECKS -fimplicit-templates
53CPPFLAGS.strstream.cc=	-I$(GLIBCPP_INCLUDE_DIR)/backward -Wno-deprecated
54
55# XXX also need this for some PCHs.
56CPPFLAGS.atomic.cc = -std=gnu++0x
57CPPFLAGS.compatibility-c++0x.cc = -std=gnu++0x
58CPPFLAGS.functexcept.cc = -std=gnu++0x
59CPPFLAGS.hash_c++0x.cc = -std=gnu++0x
60CPPFLAGS.hashtable_c++0x.cc = -std=gnu++0x
61CPPFLAGS.limits.cc = -std=gnu++0x
62CPPFLAGS.system_error.cc = -std=gnu++0x
63CPPFLAGS.fstream-inst.cc = -std=gnu++0x
64CPPFLAGS.string-inst.cc = -std=gnu++0x
65CPPFLAGS.wstring-inst.cc = -std=gnu++0x
66CPPFLAGS.mutex.cc = -std=gnu++0x
67CPPFLAGS.condition_variable.cc = -std=gnu++0x
68CPPFLAGS.chrono.cc = -std=gnu++0x
69CPPFLAGS.thread.cc = -std=gnu++0x
70CPPFLAGS.future.cc = -std=gnu++0x
71
72CPPFLAGS.cp-demangle.cc += -DIN_GLIBCPP_V3
73CPPFLAGS.concept-inst.cc += -D_GLIBCXX_CONCEPT_CHECKS
74CPPFLAGS.parallel_list.cc += -D_GLIBCXX_PARALLEL
75CPPFLAGS.parallel_settings.cc += -D_GLIBCXX_PARALLEL
76CPPFLAGS.compatibility-parallel_list.cc += -D_GLIBCXX_PARALLEL
77
78# XXX
79MKDEPFLAGS+=	-I$(GLIBCPP_INCLUDE_DIR)/backward
80
81.include <bsd.lib.mk>
82.include <bsd.subdir.mk>
83.include <bsd.info.mk>
84
85GLIBCXX_SRCDIR=	${DIST}/libstdc++-v3
86
87codecvt_members.cc: ${GLIBCXX_SRCDIR}/${G_CCODECVT_CC}
88	${_MKTARGET_CREATE}
89	rm -f ${.TARGET}
90	ln -s ${GLIBCXX_SRCDIR}/${G_CCODECVT_CC} ${.TARGET}
91
92collate_members.cc: ${GLIBCXX_SRCDIR}/${G_CCOLLATE_CC}
93	${_MKTARGET_CREATE}
94	rm -f ${.TARGET}
95	ln -s ${GLIBCXX_SRCDIR}/${G_CCOLLATE_CC} ${.TARGET}
96
97ctype_members.cc: ${GLIBCXX_SRCDIR}/${G_CCTYPE_CC}
98	${_MKTARGET_CREATE}
99	rm -f ${.TARGET}
100	ln -s ${GLIBCXX_SRCDIR}/${G_CCTYPE_CC} ${.TARGET}
101
102messages_members.cc: ${GLIBCXX_SRCDIR}/${G_CMESSAGES_CC}
103	${_MKTARGET_CREATE}
104	rm -f ${.TARGET}
105	ln -s ${GLIBCXX_SRCDIR}/${G_CMESSAGES_CC} ${.TARGET}
106
107monetary_members.cc: ${GLIBCXX_SRCDIR}/${G_CMONEY_CC}
108	${_MKTARGET_CREATE}
109	rm -f ${.TARGET}
110	ln -s ${GLIBCXX_SRCDIR}/${G_CMONEY_CC} ${.TARGET}
111
112numeric_members.cc: ${GLIBCXX_SRCDIR}/${G_CNUMERIC_CC}
113	${_MKTARGET_CREATE}
114	rm -f ${.TARGET}
115	ln -s ${GLIBCXX_SRCDIR}/${G_CNUMERIC_CC} ${.TARGET}
116
117time_members.cc: ${GLIBCXX_SRCDIR}/${G_CTIME_CC}
118	${_MKTARGET_CREATE}
119	rm -f ${.TARGET}
120	ln -s ${GLIBCXX_SRCDIR}/${G_CTIME_CC} ${.TARGET}
121
122atomicity.cc: ${G_atomicity_file}
123	${_MKTARGET_CREATE}
124	rm -f ${.TARGET}
125	ln -s ${G_atomicity_file} ${.TARGET}
126
127c++locale.cc: ${GLIBCXX_SRCDIR}/${G_CLOCALE_CC}
128	${_MKTARGET_CREATE}
129	rm -f ${.TARGET}
130	ln -s ${GLIBCXX_SRCDIR}/${G_CLOCALE_CC} ${.TARGET}
131
132basic_file.cc: ${GLIBCXX_SRCDIR}/${G_BASIC_FILE_CC}
133	${_MKTARGET_CREATE}
134	rm -f ${.TARGET}
135	ln -s ${GLIBCXX_SRCDIR}/${G_BASIC_FILE_CC} ${.TARGET}
136
137
138CLEANFILES+=	atomicity.cc basic_file.cc c++locale.cc codecvt_members.cc
139CLEANFILES+=	collate_members.cc ctype_members.cc messages_members.cc
140CLEANFILES+=	monetary_members.cc numeric_members.cc time_members.cc
141
142${SRCS}: unwind.h
143unwind.h: ${G_UNWIND_H}
144	${_MKTARGET_CREATE}
145	rm -f ${.TARGET}
146	ln -s ${G_UNWIND_H} ${.TARGET}
147CLEANFILES+= unwind.h
148
149.PATH:	${DIST}/libstdc++-v3/src \
150	${DIST}/libstdc++-v3/libsupc++ \
151	${DIST}/libiberty \
152	${CONF}/locale/generic \
153	${.CURDIR}/arch/${GCC_MACHINE_ARCH}
154
155${OBJS}: ${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk
156.else
157.include <bsd.prog.mk> # do nothing
158.endif
159