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
24 SRCS+= condition_variable.cpp
38 SRCS+= shared_mutex.cpp
42 SRCS+= system_error.cpp
48 CXXRT_SRCS+= auxhelper.cc
49 CXXRT_SRCS+= dynamic_cast.cc
50 CXXRT_SRCS+= exception.cc
52 CXXRT_SRCS+= libelftc_dem_gnu3.c
53 CXXRT_SRCS+= memory.cc
54 CXXRT_SRCS+= stdexcept.cc
55 CXXRT_SRCS+= terminate.cc
56 CXXRT_SRCS+= typeinfo.cc
58 .for _S in ${CXXRT_SRCS}
59 CLEANFILES+= cxxrt_${_S}
60 STATICOBJS+= cxxrt_${_S:R}.o
61 cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
62 ln -sf ${.ALLSRC} ${.TARGET}
66 CFLAGS+= -isystem ${HDRDIR} -isystem ${_LIBCXXRTDIR} -nostdinc++ -nostdlib -D_LIBCPP_BUILDING_LIBRARY -DLIBCXXRT
67 .if empty(CXXFLAGS:M-std=*)
72 INCSGROUPS= STD EXP EXT
74 STD_HEADERS+= __bit_reference
75 STD_HEADERS+= __bsd_locale_defaults.h
76 STD_HEADERS+= __bsd_locale_fallbacks.h
77 STD_HEADERS+= __config
79 STD_HEADERS+= __functional_03
80 STD_HEADERS+= __functional_base
81 STD_HEADERS+= __functional_base_03
82 STD_HEADERS+= __hash_table
83 STD_HEADERS+= __libcpp_version
84 STD_HEADERS+= __locale
85 STD_HEADERS+= __mutex_base
86 STD_HEADERS+= __nullptr
87 STD_HEADERS+= __refstring
88 STD_HEADERS+= __split_buffer
89 STD_HEADERS+= __sso_allocator
90 STD_HEADERS+= __std_stream
91 STD_HEADERS+= __string
92 STD_HEADERS+= __threading_support
95 STD_HEADERS+= __undef_min_max
96 STD_HEADERS+= algorithm
101 STD_HEADERS+= cassert
102 STD_HEADERS+= ccomplex
108 STD_HEADERS+= cinttypes
109 STD_HEADERS+= ciso646
110 STD_HEADERS+= climits
111 STD_HEADERS+= clocale
113 STD_HEADERS+= codecvt
114 STD_HEADERS+= complex
115 STD_HEADERS+= complex.h
116 STD_HEADERS+= condition_variable
117 STD_HEADERS+= csetjmp
118 STD_HEADERS+= csignal
119 STD_HEADERS+= cstdarg
120 STD_HEADERS+= cstdbool
121 STD_HEADERS+= cstddef
122 STD_HEADERS+= cstdint
124 STD_HEADERS+= cstdlib
125 STD_HEADERS+= cstring
126 STD_HEADERS+= ctgmath
128 STD_HEADERS+= ctype.h
130 STD_HEADERS+= cwctype
132 STD_HEADERS+= errno.h
133 STD_HEADERS+= exception
134 STD_HEADERS+= float.h
135 STD_HEADERS+= forward_list
136 STD_HEADERS+= fstream
137 STD_HEADERS+= functional
139 STD_HEADERS+= initializer_list
140 STD_HEADERS+= inttypes.h
141 STD_HEADERS+= iomanip
144 STD_HEADERS+= iostream
145 STD_HEADERS+= istream
146 STD_HEADERS+= iterator
148 STD_HEADERS+= limits.h
151 STD_HEADERS+= locale.h
157 STD_HEADERS+= numeric
158 STD_HEADERS+= optional
159 STD_HEADERS+= ostream
164 STD_HEADERS+= scoped_allocator
166 STD_HEADERS+= setjmp.h
167 STD_HEADERS+= shared_mutex
168 STD_HEADERS+= sstream
170 STD_HEADERS+= stdbool.h
171 STD_HEADERS+= stddef.h
172 STD_HEADERS+= stdexcept
173 STD_HEADERS+= stdint.h
174 STD_HEADERS+= stdio.h
175 STD_HEADERS+= stdlib.h
176 STD_HEADERS+= streambuf
178 STD_HEADERS+= string.h
179 STD_HEADERS+= string_view
180 STD_HEADERS+= strstream
181 STD_HEADERS+= system_error
182 STD_HEADERS+= tgmath.h
185 STD_HEADERS+= type_traits
186 STD_HEADERS+= typeindex
187 STD_HEADERS+= typeinfo
188 STD_HEADERS+= unordered_map
189 STD_HEADERS+= unordered_set
190 STD_HEADERS+= utility
191 STD_HEADERS+= valarray
192 STD_HEADERS+= variant
194 STD_HEADERS+= wchar.h
195 STD_HEADERS+= wctype.h
197 RT_HEADERS+= cxxabi.h
198 RT_HEADERS+= unwind-arm.h
199 RT_HEADERS+= unwind-itanium.h
200 RT_HEADERS+= unwind.h
202 .for hdr in ${STD_HEADERS}
203 STD+= ${HDRDIR}/${hdr}
204 INCSLINKS+= ../${hdr} ${CXXINCLUDEDIR}/tr1/${hdr}
206 .for hdr in ${RT_HEADERS}
207 STD+= ${_LIBCXXRTDIR}/${hdr}
209 STDDIR= ${CXXINCLUDEDIR}
211 EXP_HEADERS+= __config
212 EXP_HEADERS+= __memory
213 EXP_HEADERS+= algorithm
217 EXP_HEADERS+= dynarray
218 EXP_HEADERS+= filesystem
219 EXP_HEADERS+= forward_list
220 EXP_HEADERS+= functional
221 EXP_HEADERS+= iterator
224 EXP_HEADERS+= memory_resource
225 EXP_HEADERS+= numeric
226 EXP_HEADERS+= optional
227 EXP_HEADERS+= propagate_const
232 EXP_HEADERS+= string_view
233 EXP_HEADERS+= system_error
235 EXP_HEADERS+= type_traits
236 EXP_HEADERS+= unordered_map
237 EXP_HEADERS+= unordered_set
238 EXP_HEADERS+= utility
241 .for hdr in ${EXP_HEADERS}
242 EXP+= ${HDRDIR}/experimental/${hdr}
244 EXPDIR= ${CXXINCLUDEDIR}/experimental
247 EXT_HEADERS+= hash_map
248 EXT_HEADERS+= hash_set
250 .for hdr in ${EXT_HEADERS}
251 EXT+= ${HDRDIR}/ext/${hdr}
253 EXTDIR= ${CXXINCLUDEDIR}/ext
255 .include <bsd.lib.mk>