xref: /dragonfly/gnu/lib/gcc47/libstdc++/Makefile (revision ae24b5e0)
1.include "../Makefile.inc"
2.include "../libsupc++/Makefile.src"
3.include "Makefile.headers"
4SRCDIR=	${GCCDIR}/libstdc++-v3
5.PATH:	${SRCDIR}
6.PATH:	${SRCDIR}/libsupc++
7.PATH:	${SRCDIR}/src
8.PATH:	${SRCDIR}/src/c++11
9.PATH:	${SRCDIR}/src/c++98
10.PATH:	${SRCDIR}/config/io
11.PATH:	${SRCDIR}/config/locale/dragonfly
12.PATH:	${SRCDIR}/config/locale/generic
13.PATH:	${GCCDIR}/gcc
14.PATH:	${GCCDIR}/libgcc
15
16# Vendor lists shared lib version as 6, not 9.
17LIB=		stdc++
18SHLIB_MAJOR=	9
19
20CFLAGS+=	-DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
21CFLAGS+=	-I${.CURDIR}
22CFLAGS+=	-I${.OBJDIR}
23CFLAGS+=	-I${GCCDIR}/gcc
24CFLAGS+=	-I${GCCDIR}/libgcc
25CFLAGS+=	-I${GCCDIR}/libiberty
26CFLAGS+=	-I${GCCDIR}/libcpp/include
27CXXFLAGS+=	-fno-implicit-templates
28CXXFLAGS+=	-fdiagnostics-show-location=once
29CXXFLAGS+=	-ffunction-sections -fdata-sections
30CXXFLAGS+=	-Wno-deprecated
31LDFLAGS+=	-Wl,--version-script=${.CURDIR}/libstdc++-symbols.ver
32
33THRLIB= 	${.OBJDIR}/../../../../lib/libpthread/libpthread.so
34LDADD+= 	${THRLIB} -lm
35DPADD+= 	${THRLIB} ${LIBM}
36
37# Slightly modified from libstdc++/src/c++98/Makefile.in
38# sources_1998 is the equivalent of libc_98convenience.a
39# sources_2011 is the equivalent of libc_11convenience.a
40host_sources_1998 = \
41	atomicity.cc \
42	codecvt_members.cc \
43	collate_members.cc \
44	ctype_configure_char.cc \
45	ctype_members.cc \
46	messages_members.cc \
47	monetary_members.cc \
48	numeric_members.cc \
49	time_members.cc
50
51parallel_sources_1998 =
52
53inst_sources_1998 = \
54	allocator-inst.cc \
55	concept-inst.cc \
56	ext-inst.cc \
57	ios-inst.cc \
58	iostream-inst.cc \
59	istream-inst.cc \
60	locale-inst.cc \
61	misc-inst.cc \
62	ostream-inst.cc \
63	sstream-inst.cc \
64	streambuf-inst.cc \
65	wlocale-inst.cc
66
67host_sources_extra_1998 = \
68	basic_file.cc \
69	c++locale.cc \
70	${inst_sources_1998} \
71	${parallel_sources_1998}
72
73sources_1998 = \
74	bitmap_allocator.cc \
75	pool_allocator.cc \
76	mt_allocator.cc \
77	codecvt.cc \
78	complex_io.cc \
79	ctype.cc \
80	globals_io.cc \
81	hash_tr1.cc \
82	hashtable_tr1.cc \
83	ios.cc \
84	ios_failure.cc \
85	ios_init.cc \
86	ios_locale.cc \
87	list.cc \
88	locale.cc \
89	locale_init.cc \
90	locale_facets.cc \
91	localename.cc \
92	math_stubs_float.cc \
93	math_stubs_long_double.cc \
94	stdexcept.cc \
95	strstream.cc \
96	tree-cxx.cc \
97	istream.cc \
98	streambuf.cc \
99	valarray.cc \
100	${host_sources_1998} \
101	${host_sources_extra_1998}
102
103inst_sources_2011 = \
104	fstream-inst.cc \
105	string-inst.cc \
106	wstring-inst.cc
107
108sources_2011 = \
109	chrono.cc \
110	condition_variable.cc \
111	debug-cxx.cc \
112	functexcept.cc \
113	functional.cc \
114	future.cc \
115	hash_c++0x.cc \
116	hashtable_c++0x.cc \
117	limits.cc \
118	mutex.cc \
119	placeholders.cc \
120	regex.cc \
121	shared_ptr.cc \
122	system_error.cc \
123	thread.cc \
124	${inst_sources_2011}
125
126ldbl_compat_sources =
127parallel_compat_sources =
128
129cxx98_sources = \
130	compatibility.cc \
131	compatibility-debug_list.cc \
132	compatibility-debug_list-2.cc \
133	compatibility-list.cc \
134	compatibility-list-2.cc \
135	${ldbl_compat_sources} \
136	${parallel_compat_sources}
137
138cxx11_sources = \
139	compatibility-c++0x.cc \
140	compatibility-atomic-c++0x.cc \
141	compatibility-thread-c++0x.cc
142
143SRCS+=	${SUPCXX} \
144	cp-demangle.c \
145	${sources_1998} \
146	${sources_2011} \
147	${cxx98_sources} \
148	${cxx11_sources}
149
150FLAGS_GROUPS=		gnu0x gnu11
151gnu0x_FLAGS=		-std=gnu++0x
152gnu11_FLAGS=		-std=gnu++11
153gnu0x_FLAGS_FILES=	eh_ptr.cc \
154			eh_throw.cc \
155			guard.cc \
156			nested_exception.cc
157gnu11_FLAGS_FILES=	chrono.cc \
158			condition_variable.cc \
159			debug-cxx.cc \
160			functexcept.cc \
161			functional.cc \
162			future.cc \
163			hash_c++0x.cc \
164			hashtable_c++0x.cc \
165			limits.cc \
166			mutex.cc \
167			placeholders.cc \
168			regex.cc \
169			shared_ptr.cc \
170			system_error.cc \
171			thread.cc \
172			fstream-inst.cc \
173			string-inst.cc \
174			wstring-inst.cc \
175			compatibility-c++0x.cc \
176			compatibility-atomic-c++0x.cc \
177			compatibility-thread-c++0x.cc
178
179#generated sources
180SRCS+=	unwind.h \
181	unwind-cxx.h \
182	cxxabi_forced.h
183
184HD=	${INCLUDEDIR}/c++/${GCCPOINTVER}
185
186# These sections are detailed in Makefile.headers
187# parallel section is empty, skip it
188# make buildincludes, make installincludes before make depend
189glibcxx_srcdir=	${SRCDIR}
190HSECT=	std bits bits_sup backward ext ext_compat tr1 tr2 decimal \
191	c_base c_compatibility debug profile profile_impl host supc
192PBSECT=	1 2 3 4 5 6 7
193
194.for i in ${HSECT}
195INCSGROUPS+=	 	${i}_headers
196${i}_headersDIR= 	${HD}/${${i}_builddir}
197.endfor
198
199PATHGROUP=
200.for i in ${PBSECT}
201.  for k in ${pb_headers${i}}
202.    if ${PATHGROUP:M${k:H:T}} == ""
203PATHGROUP+=${k:H:T}
204PATH_${k:H:T}=${k:H:T}
205.    endif
206PBG_${k:H:T}+=${k}
207.  endfor
208.endfor
209
210INCSGROUPS+=		PBG_pb_ds
211PBG_pb_dsDIR=		${HD}/${pb_builddir}
212
213INCSGROUPS+=		PBG_detail
214PBG_detailDIR=		${HD}/${pb_builddir}/detail
215
216.for k in ${PATHGROUP:Npb_ds:Ndetail}
217INCSGROUPS+=		PBG_${k}
218PBG_${k}DIR=		${HD}/${pb_builddir}/detail/${PATH_${k}}
219.endfor
220
221INCSGROUPS+=		host_headers_extra
222host_headers_extraDIR=	${HD}/bits
223host_headers_extraNAME_basic_file_stdio.h=	basic_file.h
224host_headers_extraNAME_c_locale.h=		c++locale.h
225host_headers_extraNAME_c_io_stdio.h+=		c++io.h
226host_headers_extraNAME_new_allocator_base.h=	c++allocator.h
227
228atomicity.cc: ${SRCDIR}/config/cpu/generic/atomicity_builtins/atomicity.h
229	cp ${.ALLSRC} ${.TARGET}
230
231ctype_configure_char.cc: ${SRCDIR}/config/os/bsd/dragonfly/${.TARGET}
232	cp ${.ALLSRC} ${.TARGET}
233
234basic_file.cc: ${SRCDIR}/config/io/basic_file_stdio.cc
235	cp ${.ALLSRC} ${.TARGET}
236
237c++locale.cc: ${SRCDIR}/config/locale/dragonfly/c_locale.cc
238	cp ${.ALLSRC} ${.TARGET}
239
240unwind.h: unwind-generic.h
241	cp ${.ALLSRC} ${.TARGET}
242
243unwind-cxx.h: ${SRCDIR}/libsupc++/unwind-cxx.h
244	cp ${.ALLSRC} ${.TARGET}
245
246cxxabi_forced.h: ${SRCDIR}/libsupc++/cxxabi_forced.h
247	cp ${.ALLSRC} ${.TARGET}
248
249# We can't add libiberty to the PATH because it will take the regex.o there
250# before compiling regex.cc into an object file.  Just recompile
251
252cp-demangle.c: ${GCCDIR}/libiberty/${.TARGET}
253	cp ${.ALLSRC} ${.TARGET}
254
255# debug.cc, tree.cc and vec.cc are also getting pre-empted by gcc/ versions
256debug-cxx.cc: ${SRCDIR}/src/c++11/debug.cc
257	cp ${.ALLSRC} ${.TARGET}
258
259tree-cxx.cc: ${SRCDIR}/src/c++98/tree.cc
260	cp ${.ALLSRC} ${.TARGET}
261
262vec-cxx.cc: ${SRCDIR}/libsupc++/vec.cc
263	cp ${.ALLSRC} ${.TARGET}
264
265CLEANFILES+=	atomicity.cc basic_file.cc c++locale.cc \
266		ctype_configure_char.cc unwind.h unwind-cxx.h \
267		cp-demangle.c debug-cxx.cc tree-cxx.cc vec-cxx.cc \
268		cxxabi_forced.h c++config.h gthr.h gthr-default.h
269
270.include <bsd.lib.mk>
271