1 .include "../Makefile.inc"
2 .include "../libsupc++/Makefile.src"
3 .include "Makefile.headers"
4 SRCDIR= ${GCCDIR}/libstdc++-v3
6 .PATH: ${SRCDIR}/libsupc++
8 .PATH: ${SRCDIR}/src/c++11
9 .PATH: ${SRCDIR}/src/c++98
10 .PATH: ${SRCDIR}/libmath
11 .PATH: ${SRCDIR}/config/io
12 .PATH: ${SRCDIR}/config/locale/dragonfly
13 .PATH: ${SRCDIR}/config/locale/generic
15 .PATH: ${GCCDIR}/libgcc
17 # Vendor lists shared lib version as 6, not 9.
21 CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
24 CFLAGS+= -I${GCCDIR}/gcc
25 CFLAGS+= -I${GCCDIR}/libgcc
26 CFLAGS+= -I${GCCDIR}/libiberty
27 CFLAGS+= -I${GCCDIR}/include
28 CFLAGS+= -I${GCCDIR}/libcpp/include
29 CFLAGS+= -I${SRCDIR}/include
30 CFLAGS+= -I${SRCDIR}/include/std
31 CFLAGS+= -I${SRCDIR}/include/c_std
32 CFLAGS+= -I${SRCDIR}/include/c_global
33 CFLAGS+= -I${SRCDIR}/include/backward
34 CFLAGS+= -I${SRCDIR}/libsupc++
35 CXXFLAGS+= -fno-implicit-templates
36 CXXFLAGS+= -fdiagnostics-show-location=once
37 CXXFLAGS+= -ffunction-sections -fdata-sections
38 CXXFLAGS+= -Wno-deprecated
39 LDFLAGS+= -Wl,--version-script=${.CURDIR}/libstdc++-symbols.ver
41 THRLIB= ${.OBJDIR}/../../../../lib/libpthread/libpthread.so
43 DPADD+= ${THRLIB} ${LIBM}
45 # Slightly modified from libstdc++/src/c++98/Makefile.in
46 # sources_1998 is the equivalent of libc_98convenience.a
47 # sources_2011 is the equivalent of libc_11convenience.a
52 ctype_configure_char.cc \
59 parallel_sources_1998 =
75 host_sources_extra_1998 = \
78 ${inst_sources_1998} \
79 ${parallel_sources_1998}
100 math_stubs_float.cc \
101 math_stubs_long_double.cc \
108 ${host_sources_1998} \
109 ${host_sources_extra_1998}
111 inst_sources_2011 = \
118 condition_variable.cc \
134 ldbl_compat_sources =
135 parallel_compat_sources =
139 compatibility-debug_list.cc \
140 compatibility-debug_list-2.cc \
141 compatibility-list.cc \
142 compatibility-list-2.cc \
143 ${ldbl_compat_sources} \
144 ${parallel_compat_sources}
147 compatibility-c++0x.cc \
148 compatibility-atomic-c++0x.cc \
149 compatibility-thread-c++0x.cc
158 FLAGS_GROUPS= gnu0x gnu11
159 gnu0x_FLAGS= -std=gnu++0x
160 gnu11_FLAGS= -std=gnu++11
161 gnu0x_FLAGS_FILES= eh_ptr.cc \
165 gnu11_FLAGS_FILES= chrono.cc \
166 condition_variable.cc \
183 compatibility-c++0x.cc \
184 compatibility-atomic-c++0x.cc \
185 compatibility-thread-c++0x.cc
191 bits/gthr-default.h \
194 HD= ${INCLUDEDIR}/c++/${GCCPOINTVER}
196 # These sections are detailed in Makefile.headers
197 # parallel section is empty, skip it
198 # make buildincludes, make installincludes before make depend
199 glibcxx_srcdir= ${SRCDIR}
200 HSECT= std bits bits_sup backward ext ext_compat tr1 tr2 decimal \
201 c_base c_compatibility debug profile profile_impl host supc
202 PBSECT= 1 2 3 4 5 6 7
205 INCSGROUPS+= ${i}_headers
206 ${i}_headersDIR= ${HD}/${${i}_builddir}
211 . for k in ${pb_headers${i}}
212 . if ${PATHGROUP:M${k:H:T}} == ""
214 PATH_${k:H:T}=${k:H:T}
220 INCSGROUPS+= PBG_pb_ds
221 PBG_pb_dsDIR= ${HD}/${pb_builddir}
223 INCSGROUPS+= PBG_detail
224 PBG_detailDIR= ${HD}/${pb_builddir}/detail
226 .for k in ${PATHGROUP:Npb_ds:Ndetail}
227 INCSGROUPS+= PBG_${k}
228 PBG_${k}DIR= ${HD}/${pb_builddir}/detail/${PATH_${k}}
231 INCSGROUPS+= host_headers_extra
232 host_headers_extraDIR= ${HD}/bits
233 host_headers_extraNAME_basic_file_stdio.h= basic_file.h
234 host_headers_extraNAME_c_locale.h= c++locale.h
235 host_headers_extraNAME_c_io_stdio.h+= c++io.h
236 host_headers_extraNAME_new_allocator_base.h= c++allocator.h
238 CONF_HEADERS= locale/generic/c++locale_internal.h \
241 atomicity.cc: ${SRCDIR}/config/cpu/generic/atomicity_builtins/atomicity.h
242 cp ${.ALLSRC} ${.TARGET}
244 ctype_configure_char.cc: ${SRCDIR}/config/os/bsd/dragonfly/${.TARGET}
245 cp ${.ALLSRC} ${.TARGET}
247 basic_file.cc: ${SRCDIR}/config/io/basic_file_stdio.cc
248 cp ${.ALLSRC} ${.TARGET}
250 c++locale.cc: ${SRCDIR}/config/locale/dragonfly/c_locale.cc
251 cp ${.ALLSRC} ${.TARGET}
253 unwind.h: unwind-generic.h
254 cp ${.ALLSRC} ${.TARGET}
259 .for F in ${CONF_HEADERS}
261 cp ${SRCDIR}/config/${F} bits/
264 # We can't add libiberty to the PATH because it will take the regex.o there
265 # before compiling regex.cc into an object file. Just recompile
267 cp-demangle.c: ${GCCDIR}/libiberty/${.TARGET}
268 cp ${.ALLSRC} ${.TARGET}
270 # debug.cc, tree.cc and vec.cc are also getting pre-empted by gcc/ versions
271 debug-cxx.cc: ${SRCDIR}/src/c++11/debug.cc
272 cp ${.ALLSRC} ${.TARGET}
274 tree-cxx.cc: ${SRCDIR}/src/c++98/tree.cc
275 cp ${.ALLSRC} ${.TARGET}
277 vec-cxx.cc: ${SRCDIR}/libsupc++/vec.cc
278 cp ${.ALLSRC} ${.TARGET}
281 CLEANFILES+= atomicity.cc basic_file.cc c++locale.cc \
282 ctype_configure_char.cc unwind.h \
283 cp-demangle.c debug-cxx.cc tree-cxx.cc vec-cxx.cc
285 depend all: bits/c++config.h
287 .include <bsd.lib.mk>