6 _LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt
7 HDRDIR= ${SRCTOP}/contrib/libc++/include
8 SRCDIR= ${SRCTOP}/contrib/libc++/src
9 CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR}
10 .if ${MACHINE_CPUARCH} == "arm"
11 STATIC_CXXFLAGS+= -mlong-calls
18 SHLIB_LDSCRIPT= libc++.ldscript
25 SRCS+= condition_variable.cpp
40 SRCS+= shared_mutex.cpp
44 SRCS+= system_error.cpp
51 SRCS+= filesystem/directory_iterator.cpp
52 SRCS+= filesystem/int128_builtins.cpp
53 SRCS+= filesystem/operations.cpp
55 CXXRT_SRCS+= auxhelper.cc
56 CXXRT_SRCS+= dynamic_cast.cc
57 CXXRT_SRCS+= exception.cc
59 CXXRT_SRCS+= libelftc_dem_gnu3.c
60 CXXRT_SRCS+= memory.cc
61 CXXRT_SRCS+= stdexcept.cc
62 CXXRT_SRCS+= terminate.cc
63 CXXRT_SRCS+= typeinfo.cc
65 .for _S in ${CXXRT_SRCS}
66 CLEANFILES+= cxxrt_${_S}
67 STATICOBJS+= cxxrt_${_S:R}.o
68 cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
69 ln -sf ${.ALLSRC} ${.TARGET}
73 CFLAGS+= -isystem ${HDRDIR}
74 CFLAGS+= -isystem ${_LIBCXXRTDIR}
77 CFLAGS+= -D_LIBCPP_BUILDING_LIBRARY
82 INCSGROUPS= STD EXP EXT
84 STD_HEADERS+= __bit_reference
85 STD_HEADERS+= __bsd_locale_defaults.h
86 STD_HEADERS+= __bsd_locale_fallbacks.h
87 STD_HEADERS+= __config
90 STD_HEADERS+= __functional_03
91 STD_HEADERS+= __functional_base
92 STD_HEADERS+= __functional_base_03
93 STD_HEADERS+= __hash_table
94 STD_HEADERS+= __libcpp_version
95 STD_HEADERS+= __locale
96 STD_HEADERS+= __mutex_base
97 STD_HEADERS+= __node_handle
98 STD_HEADERS+= __nullptr
99 STD_HEADERS+= __split_buffer
100 STD_HEADERS+= __sso_allocator
101 STD_HEADERS+= __std_stream
102 STD_HEADERS+= __string
103 STD_HEADERS+= __threading_support
105 STD_HEADERS+= __tuple
106 STD_HEADERS+= __undef_macros
107 STD_HEADERS+= algorithm
113 STD_HEADERS+= cassert
114 STD_HEADERS+= ccomplex
119 STD_HEADERS+= charconv
121 STD_HEADERS+= cinttypes
122 STD_HEADERS+= ciso646
123 STD_HEADERS+= climits
124 STD_HEADERS+= clocale
126 STD_HEADERS+= codecvt
127 STD_HEADERS+= compare
128 STD_HEADERS+= complex
129 STD_HEADERS+= complex.h
130 STD_HEADERS+= condition_variable
131 STD_HEADERS+= csetjmp
132 STD_HEADERS+= csignal
133 STD_HEADERS+= cstdarg
134 STD_HEADERS+= cstdbool
135 STD_HEADERS+= cstddef
136 STD_HEADERS+= cstdint
138 STD_HEADERS+= cstdlib
139 STD_HEADERS+= cstring
140 STD_HEADERS+= ctgmath
142 STD_HEADERS+= ctype.h
144 STD_HEADERS+= cwctype
146 STD_HEADERS+= errno.h
147 STD_HEADERS+= exception
148 STD_HEADERS+= filesystem
149 STD_HEADERS+= float.h
150 STD_HEADERS+= forward_list
151 STD_HEADERS+= fstream
152 STD_HEADERS+= functional
154 STD_HEADERS+= initializer_list
155 STD_HEADERS+= inttypes.h
156 STD_HEADERS+= iomanip
159 STD_HEADERS+= iostream
160 STD_HEADERS+= istream
161 STD_HEADERS+= iterator
163 STD_HEADERS+= limits.h
166 STD_HEADERS+= locale.h
172 STD_HEADERS+= numeric
173 STD_HEADERS+= optional
174 STD_HEADERS+= ostream
179 STD_HEADERS+= scoped_allocator
181 STD_HEADERS+= setjmp.h
182 STD_HEADERS+= shared_mutex
184 STD_HEADERS+= sstream
186 STD_HEADERS+= stdbool.h
187 STD_HEADERS+= stddef.h
188 STD_HEADERS+= stdexcept
189 STD_HEADERS+= stdint.h
190 STD_HEADERS+= stdio.h
191 STD_HEADERS+= stdlib.h
192 STD_HEADERS+= streambuf
194 STD_HEADERS+= string.h
195 STD_HEADERS+= string_view
196 STD_HEADERS+= strstream
197 STD_HEADERS+= system_error
198 STD_HEADERS+= tgmath.h
201 STD_HEADERS+= type_traits
202 STD_HEADERS+= typeindex
203 STD_HEADERS+= typeinfo
204 STD_HEADERS+= unordered_map
205 STD_HEADERS+= unordered_set
206 STD_HEADERS+= utility
207 STD_HEADERS+= valarray
208 STD_HEADERS+= variant
210 STD_HEADERS+= version
211 STD_HEADERS+= wchar.h
212 STD_HEADERS+= wctype.h
214 RT_HEADERS+= cxxabi.h
215 RT_HEADERS+= unwind-arm.h
216 RT_HEADERS+= unwind-itanium.h
217 RT_HEADERS+= unwind.h
219 .for hdr in ${STD_HEADERS}
220 STD+= ${HDRDIR}/${hdr}
221 INCSLINKS+= ../${hdr} ${CXXINCLUDEDIR}/tr1/${hdr}
223 .for hdr in ${RT_HEADERS}
224 STD+= ${_LIBCXXRTDIR}/${hdr}
226 STDDIR= ${CXXINCLUDEDIR}
228 EXP_HEADERS+= __config
229 EXP_HEADERS+= __memory
230 EXP_HEADERS+= algorithm
233 EXP_HEADERS+= coroutine
235 EXP_HEADERS+= filesystem
236 EXP_HEADERS+= forward_list
237 EXP_HEADERS+= functional
238 EXP_HEADERS+= iterator
241 EXP_HEADERS+= memory_resource
242 EXP_HEADERS+= numeric
243 EXP_HEADERS+= optional
244 EXP_HEADERS+= propagate_const
250 EXP_HEADERS+= string_view
251 EXP_HEADERS+= system_error
253 EXP_HEADERS+= type_traits
254 EXP_HEADERS+= unordered_map
255 EXP_HEADERS+= unordered_set
256 EXP_HEADERS+= utility
259 .for hdr in ${EXP_HEADERS}
260 EXP+= ${HDRDIR}/experimental/${hdr}
262 EXPDIR= ${CXXINCLUDEDIR}/experimental
265 EXT_HEADERS+= hash_map
266 EXT_HEADERS+= hash_set
268 .for hdr in ${EXT_HEADERS}
269 EXT+= ${HDRDIR}/ext/${hdr}
271 EXTDIR= ${CXXINCLUDEDIR}/ext
273 .include <bsd.lib.mk>