6 _LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt
7 HDRDIR= ${SRCTOP}/contrib/llvm-project/libcxx/include
8 SRCDIR= ${SRCTOP}/contrib/llvm-project/libcxx/src
9 CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR}
15 SHLIB_LDSCRIPT= libc++.ldscript
22 SRCS+= condition_variable.cpp
23 SRCS+= condition_variable_destructor.cpp
26 SRCS+= filesystem/directory_iterator.cpp
27 SRCS+= filesystem/int128_builtins.cpp
28 SRCS+= filesystem/operations.cpp
37 SRCS+= mutex_destructor.cpp
42 SRCS+= shared_mutex.cpp
46 SRCS+= system_error.cpp
54 CXXRT_SRCS+= auxhelper.cc
55 CXXRT_SRCS+= dynamic_cast.cc
56 CXXRT_SRCS+= exception.cc
58 CXXRT_SRCS+= libelftc_dem_gnu3.c
59 CXXRT_SRCS+= memory.cc
60 CXXRT_SRCS+= stdexcept.cc
61 CXXRT_SRCS+= terminate.cc
62 CXXRT_SRCS+= typeinfo.cc
64 .for _S in ${CXXRT_SRCS}
65 CLEANFILES+= cxxrt_${_S}
66 STATICOBJS+= cxxrt_${_S:R}.o
67 cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
68 ln -sf ${.ALLSRC} ${.TARGET}
72 CFLAGS+= -isystem ${HDRDIR}
73 CFLAGS+= -isystem ${_LIBCXXRTDIR}
76 CFLAGS+= -D_LIBCPP_BUILDING_LIBRARY
78 CFLAGS+= -ffunction-sections
79 CFLAGS+= -fdata-sections
83 INCSGROUPS= STD EXP EXT
85 STD_HEADERS+= __bit_reference
86 STD_HEADERS+= __bsd_locale_defaults.h
87 STD_HEADERS+= __bsd_locale_fallbacks.h
88 STD_HEADERS+= __config
91 STD_HEADERS+= __functional_03
92 STD_HEADERS+= __functional_base
93 STD_HEADERS+= __functional_base_03
94 STD_HEADERS+= __hash_table
95 STD_HEADERS+= __libcpp_version
96 STD_HEADERS+= __locale
97 STD_HEADERS+= __mutex_base
98 STD_HEADERS+= __node_handle
99 STD_HEADERS+= __nullptr
100 STD_HEADERS+= __split_buffer
101 STD_HEADERS+= __sso_allocator
102 STD_HEADERS+= __std_stream
103 STD_HEADERS+= __string
104 STD_HEADERS+= __threading_support
106 STD_HEADERS+= __tuple
107 STD_HEADERS+= __undef_macros
108 STD_HEADERS+= algorithm
114 STD_HEADERS+= cassert
115 STD_HEADERS+= ccomplex
120 STD_HEADERS+= charconv
122 STD_HEADERS+= cinttypes
123 STD_HEADERS+= ciso646
124 STD_HEADERS+= climits
125 STD_HEADERS+= clocale
127 STD_HEADERS+= codecvt
128 STD_HEADERS+= compare
129 STD_HEADERS+= complex
130 STD_HEADERS+= complex.h
131 STD_HEADERS+= condition_variable
132 STD_HEADERS+= csetjmp
133 STD_HEADERS+= csignal
134 STD_HEADERS+= cstdarg
135 STD_HEADERS+= cstdbool
136 STD_HEADERS+= cstddef
137 STD_HEADERS+= cstdint
139 STD_HEADERS+= cstdlib
140 STD_HEADERS+= cstring
141 STD_HEADERS+= ctgmath
143 STD_HEADERS+= ctype.h
145 STD_HEADERS+= cwctype
147 STD_HEADERS+= errno.h
148 STD_HEADERS+= exception
150 STD_HEADERS+= filesystem
151 STD_HEADERS+= float.h
152 STD_HEADERS+= forward_list
153 STD_HEADERS+= fstream
154 STD_HEADERS+= functional
156 STD_HEADERS+= initializer_list
157 STD_HEADERS+= inttypes.h
158 STD_HEADERS+= iomanip
161 STD_HEADERS+= iostream
162 STD_HEADERS+= istream
163 STD_HEADERS+= iterator
165 STD_HEADERS+= limits.h
168 STD_HEADERS+= locale.h
174 STD_HEADERS+= numeric
175 STD_HEADERS+= optional
176 STD_HEADERS+= ostream
181 STD_HEADERS+= scoped_allocator
183 STD_HEADERS+= setjmp.h
184 STD_HEADERS+= shared_mutex
186 STD_HEADERS+= sstream
188 STD_HEADERS+= stdbool.h
189 STD_HEADERS+= stddef.h
190 STD_HEADERS+= stdexcept
191 STD_HEADERS+= stdint.h
192 STD_HEADERS+= stdio.h
193 STD_HEADERS+= stdlib.h
194 STD_HEADERS+= streambuf
196 STD_HEADERS+= string.h
197 STD_HEADERS+= string_view
198 STD_HEADERS+= strstream
199 STD_HEADERS+= system_error
200 STD_HEADERS+= tgmath.h
203 STD_HEADERS+= type_traits
204 STD_HEADERS+= typeindex
205 STD_HEADERS+= typeinfo
206 STD_HEADERS+= unordered_map
207 STD_HEADERS+= unordered_set
208 STD_HEADERS+= utility
209 STD_HEADERS+= valarray
210 STD_HEADERS+= variant
212 STD_HEADERS+= version
213 STD_HEADERS+= wchar.h
214 STD_HEADERS+= wctype.h
216 RT_HEADERS+= cxxabi.h
217 RT_HEADERS+= unwind-arm.h
218 RT_HEADERS+= unwind-itanium.h
219 RT_HEADERS+= unwind.h
221 .for hdr in ${STD_HEADERS}
222 STD+= ${HDRDIR}/${hdr}
223 INCSLINKS+= ../${hdr} ${CXXINCLUDEDIR}/tr1/${hdr}
225 .for hdr in ${RT_HEADERS}
226 STD+= ${_LIBCXXRTDIR}/${hdr}
228 STDDIR= ${CXXINCLUDEDIR}
230 EXP_HEADERS+= __config
231 EXP_HEADERS+= __memory
232 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+= propagate_const
247 EXP_HEADERS+= type_traits
248 EXP_HEADERS+= unordered_map
249 EXP_HEADERS+= unordered_set
250 EXP_HEADERS+= utility
253 .for hdr in ${EXP_HEADERS}
254 EXP+= ${HDRDIR}/experimental/${hdr}
256 EXPDIR= ${CXXINCLUDEDIR}/experimental
259 EXT_HEADERS+= hash_map
260 EXT_HEADERS+= hash_set
262 .for hdr in ${EXT_HEADERS}
263 EXT+= ${HDRDIR}/ext/${hdr}
265 EXTDIR= ${CXXINCLUDEDIR}/ext
267 .include <bsd.lib.mk>