7 _LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt
8 HDRDIR= ${SRCTOP}/contrib/llvm-project/libcxx/include
9 SRCDIR= ${SRCTOP}/contrib/llvm-project/libcxx/src
10 CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR}
16 SHLIB_LDSCRIPT= libc++.ldscript
25 SRCS+= condition_variable.cpp
26 SRCS+= condition_variable_destructor.cpp
29 SRCS+= filesystem/directory_iterator.cpp
30 SRCS+= filesystem/int128_builtins.cpp
31 SRCS+= filesystem/operations.cpp
36 SRCS+= ios.instantiations.cpp
38 SRCS+= legacy_debug_handler.cpp
39 SRCS+= legacy_pointer_safety.cpp
42 SRCS+= memory_resource.cpp
44 SRCS+= mutex_destructor.cpp
48 SRCS+= random_shuffle.cpp
50 SRCS+= ryu/d2fixed.cpp
53 SRCS+= shared_mutex.cpp
57 SRCS+= system_error.cpp
64 SRCS+= verbose_abort.cpp
66 CXXRT_SRCS+= auxhelper.cc
67 CXXRT_SRCS+= dynamic_cast.cc
68 CXXRT_SRCS+= exception.cc
70 CXXRT_SRCS+= libelftc_dem_gnu3.c
71 CXXRT_SRCS+= memory.cc
72 CXXRT_SRCS+= stdexcept.cc
73 CXXRT_SRCS+= terminate.cc
74 CXXRT_SRCS+= typeinfo.cc
76 .for _S in ${CXXRT_SRCS}
77 CLEANFILES+= cxxrt_${_S}
78 STATICOBJS+= cxxrt_${_S:R}.o
79 cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
80 ln -sf ${.ALLSRC} ${.TARGET}
84 CFLAGS+= -isystem ${.CURDIR}
85 CFLAGS+= -isystem ${HDRDIR}
86 CFLAGS+= -isystem ${SRCDIR}
87 CFLAGS+= -isystem ${_LIBCXXRTDIR}
90 CFLAGS+= -D_LIBCPP_BUILDING_LIBRARY
92 CFLAGS+= -ffunction-sections
93 CFLAGS+= -fdata-sections
99 STDDIR= ${CXXINCLUDEDIR}
100 STD_HEADERS+= __assert
101 STD_HEADERS+= __availability
102 STD_HEADERS+= __bit_reference
103 STD_HEADERS+= __bsd_locale_defaults.h
104 STD_HEADERS+= __bsd_locale_fallbacks.h
105 STD_HEADERS+= __config
106 STD_HEADERS+= __debug
108 STD_HEADERS+= __hash_table
109 STD_HEADERS+= __locale
110 STD_HEADERS+= __mbstate_t.h
111 STD_HEADERS+= __mutex_base
112 STD_HEADERS+= __node_handle
113 STD_HEADERS+= __split_buffer
114 STD_HEADERS+= __std_stream
115 STD_HEADERS+= __threading_support
117 STD_HEADERS+= __undef_macros
118 STD_HEADERS+= __verbose_abort
119 STD_HEADERS+= algorithm
123 STD_HEADERS+= barrier
126 STD_HEADERS+= cassert
127 STD_HEADERS+= ccomplex
132 STD_HEADERS+= charconv
134 STD_HEADERS+= cinttypes
135 STD_HEADERS+= ciso646
136 STD_HEADERS+= climits
137 STD_HEADERS+= clocale
139 STD_HEADERS+= codecvt
140 STD_HEADERS+= compare
141 STD_HEADERS+= complex
142 STD_HEADERS+= complex.h
143 STD_HEADERS+= concepts
144 STD_HEADERS+= condition_variable
145 STD_HEADERS+= coroutine
146 STD_HEADERS+= csetjmp
147 STD_HEADERS+= csignal
148 STD_HEADERS+= cstdarg
149 STD_HEADERS+= cstdbool
150 STD_HEADERS+= cstddef
151 STD_HEADERS+= cstdint
153 STD_HEADERS+= cstdlib
154 STD_HEADERS+= cstring
155 STD_HEADERS+= ctgmath
157 STD_HEADERS+= ctype.h
160 STD_HEADERS+= cwctype
162 STD_HEADERS+= errno.h
163 STD_HEADERS+= exception
164 STD_HEADERS+= execution
165 STD_HEADERS+= expected
167 STD_HEADERS+= filesystem
168 STD_HEADERS+= float.h
170 STD_HEADERS+= forward_list
171 STD_HEADERS+= fstream
172 STD_HEADERS+= functional
174 STD_HEADERS+= initializer_list
175 STD_HEADERS+= inttypes.h
176 STD_HEADERS+= iomanip
179 STD_HEADERS+= iostream
180 STD_HEADERS+= istream
181 STD_HEADERS+= iterator
183 STD_HEADERS+= libcxx.imp
185 STD_HEADERS+= limits.h
188 STD_HEADERS+= locale.h
192 STD_HEADERS+= memory_resource
195 STD_HEADERS+= numbers
196 STD_HEADERS+= numeric
197 STD_HEADERS+= optional
198 STD_HEADERS+= ostream
204 STD_HEADERS+= scoped_allocator
205 STD_HEADERS+= semaphore
207 STD_HEADERS+= setjmp.h
208 STD_HEADERS+= shared_mutex
209 STD_HEADERS+= source_location
211 STD_HEADERS+= sstream
213 STD_HEADERS+= stdatomic.h
214 STD_HEADERS+= stdbool.h
215 STD_HEADERS+= stddef.h
216 STD_HEADERS+= stdexcept
217 STD_HEADERS+= stdint.h
218 STD_HEADERS+= stdio.h
219 STD_HEADERS+= stdlib.h
220 STD_HEADERS+= streambuf
222 STD_HEADERS+= string.h
223 STD_HEADERS+= string_view
224 STD_HEADERS+= strstream
225 STD_HEADERS+= system_error
226 STD_HEADERS+= tgmath.h
229 STD_HEADERS+= type_traits
230 STD_HEADERS+= typeindex
231 STD_HEADERS+= typeinfo
232 STD_HEADERS+= uchar.h
233 STD_HEADERS+= unordered_map
234 STD_HEADERS+= unordered_set
235 STD_HEADERS+= utility
236 STD_HEADERS+= valarray
237 STD_HEADERS+= variant
239 STD_HEADERS+= version
240 STD_HEADERS+= wchar.h
241 STD_HEADERS+= wctype.h
242 .for hdr in ${STD_HEADERS}
243 STD+= ${HDRDIR}/${hdr}
246 # Special case for __config_site, which as of libc++ 12.0.0 is generated by
247 # CMake, and as of 13.0.0 installed side-by-side with__config.
248 STD+= ${.CURDIR}/__config_site
250 # Special case for module.modulemap, which as of libc++ 15.0.0 is generated by
252 STD+= ${.CURDIR}/module.modulemap
254 RT_HEADERS+= cxxabi.h
255 .for hdr in ${RT_HEADERS}
256 STD+= ${_LIBCXXRTDIR}/${hdr}
260 ALGDIR= ${CXXINCLUDEDIR}/__algorithm
261 ALG_HEADERS+= adjacent_find.h
262 ALG_HEADERS+= all_of.h
263 ALG_HEADERS+= any_of.h
264 ALG_HEADERS+= binary_search.h
265 ALG_HEADERS+= clamp.h
267 ALG_HEADERS+= comp_ref_type.h
269 ALG_HEADERS+= copy_backward.h
270 ALG_HEADERS+= copy_if.h
271 ALG_HEADERS+= copy_move_common.h
272 ALG_HEADERS+= copy_n.h
273 ALG_HEADERS+= count.h
274 ALG_HEADERS+= count_if.h
275 ALG_HEADERS+= equal.h
276 ALG_HEADERS+= equal_range.h
278 ALG_HEADERS+= fill_n.h
280 ALG_HEADERS+= find_end.h
281 ALG_HEADERS+= find_first_of.h
282 ALG_HEADERS+= find_if.h
283 ALG_HEADERS+= find_if_not.h
284 ALG_HEADERS+= for_each.h
285 ALG_HEADERS+= for_each_n.h
286 ALG_HEADERS+= generate.h
287 ALG_HEADERS+= generate_n.h
288 ALG_HEADERS+= half_positive.h
289 ALG_HEADERS+= in_found_result.h
290 ALG_HEADERS+= in_fun_result.h
291 ALG_HEADERS+= in_in_out_result.h
292 ALG_HEADERS+= in_in_result.h
293 ALG_HEADERS+= in_out_out_result.h
294 ALG_HEADERS+= in_out_result.h
295 ALG_HEADERS+= includes.h
296 ALG_HEADERS+= inplace_merge.h
297 ALG_HEADERS+= is_heap.h
298 ALG_HEADERS+= is_heap_until.h
299 ALG_HEADERS+= is_partitioned.h
300 ALG_HEADERS+= is_permutation.h
301 ALG_HEADERS+= is_sorted.h
302 ALG_HEADERS+= is_sorted_until.h
303 ALG_HEADERS+= iter_swap.h
304 ALG_HEADERS+= iterator_operations.h
305 ALG_HEADERS+= lexicographical_compare.h
306 ALG_HEADERS+= lower_bound.h
307 ALG_HEADERS+= make_heap.h
308 ALG_HEADERS+= make_projected.h
310 ALG_HEADERS+= max_element.h
311 ALG_HEADERS+= merge.h
313 ALG_HEADERS+= min_element.h
314 ALG_HEADERS+= min_max_result.h
315 ALG_HEADERS+= minmax.h
316 ALG_HEADERS+= minmax_element.h
317 ALG_HEADERS+= mismatch.h
319 ALG_HEADERS+= move_backward.h
320 ALG_HEADERS+= next_permutation.h
321 ALG_HEADERS+= none_of.h
322 ALG_HEADERS+= nth_element.h
323 ALG_HEADERS+= partial_sort.h
324 ALG_HEADERS+= partial_sort_copy.h
325 ALG_HEADERS+= partition.h
326 ALG_HEADERS+= partition_copy.h
327 ALG_HEADERS+= partition_point.h
328 ALG_HEADERS+= pop_heap.h
329 ALG_HEADERS+= prev_permutation.h
330 ALG_HEADERS+= push_heap.h
331 ALG_HEADERS+= ranges_adjacent_find.h
332 ALG_HEADERS+= ranges_all_of.h
333 ALG_HEADERS+= ranges_any_of.h
334 ALG_HEADERS+= ranges_binary_search.h
335 ALG_HEADERS+= ranges_clamp.h
336 ALG_HEADERS+= ranges_copy.h
337 ALG_HEADERS+= ranges_copy_backward.h
338 ALG_HEADERS+= ranges_copy_if.h
339 ALG_HEADERS+= ranges_copy_n.h
340 ALG_HEADERS+= ranges_count.h
341 ALG_HEADERS+= ranges_count_if.h
342 ALG_HEADERS+= ranges_equal.h
343 ALG_HEADERS+= ranges_equal_range.h
344 ALG_HEADERS+= ranges_fill.h
345 ALG_HEADERS+= ranges_fill_n.h
346 ALG_HEADERS+= ranges_find.h
347 ALG_HEADERS+= ranges_find_end.h
348 ALG_HEADERS+= ranges_find_first_of.h
349 ALG_HEADERS+= ranges_find_if.h
350 ALG_HEADERS+= ranges_find_if_not.h
351 ALG_HEADERS+= ranges_for_each.h
352 ALG_HEADERS+= ranges_for_each_n.h
353 ALG_HEADERS+= ranges_generate.h
354 ALG_HEADERS+= ranges_generate_n.h
355 ALG_HEADERS+= ranges_includes.h
356 ALG_HEADERS+= ranges_inplace_merge.h
357 ALG_HEADERS+= ranges_is_heap.h
358 ALG_HEADERS+= ranges_is_heap_until.h
359 ALG_HEADERS+= ranges_is_partitioned.h
360 ALG_HEADERS+= ranges_is_permutation.h
361 ALG_HEADERS+= ranges_is_sorted.h
362 ALG_HEADERS+= ranges_is_sorted_until.h
363 ALG_HEADERS+= ranges_iterator_concept.h
364 ALG_HEADERS+= ranges_lexicographical_compare.h
365 ALG_HEADERS+= ranges_lower_bound.h
366 ALG_HEADERS+= ranges_make_heap.h
367 ALG_HEADERS+= ranges_max.h
368 ALG_HEADERS+= ranges_max_element.h
369 ALG_HEADERS+= ranges_merge.h
370 ALG_HEADERS+= ranges_min.h
371 ALG_HEADERS+= ranges_min_element.h
372 ALG_HEADERS+= ranges_minmax.h
373 ALG_HEADERS+= ranges_minmax_element.h
374 ALG_HEADERS+= ranges_mismatch.h
375 ALG_HEADERS+= ranges_move.h
376 ALG_HEADERS+= ranges_move_backward.h
377 ALG_HEADERS+= ranges_next_permutation.h
378 ALG_HEADERS+= ranges_none_of.h
379 ALG_HEADERS+= ranges_nth_element.h
380 ALG_HEADERS+= ranges_partial_sort.h
381 ALG_HEADERS+= ranges_partial_sort_copy.h
382 ALG_HEADERS+= ranges_partition.h
383 ALG_HEADERS+= ranges_partition_copy.h
384 ALG_HEADERS+= ranges_partition_point.h
385 ALG_HEADERS+= ranges_pop_heap.h
386 ALG_HEADERS+= ranges_prev_permutation.h
387 ALG_HEADERS+= ranges_push_heap.h
388 ALG_HEADERS+= ranges_remove.h
389 ALG_HEADERS+= ranges_remove_copy.h
390 ALG_HEADERS+= ranges_remove_copy_if.h
391 ALG_HEADERS+= ranges_remove_if.h
392 ALG_HEADERS+= ranges_replace.h
393 ALG_HEADERS+= ranges_replace_copy.h
394 ALG_HEADERS+= ranges_replace_copy_if.h
395 ALG_HEADERS+= ranges_replace_if.h
396 ALG_HEADERS+= ranges_reverse.h
397 ALG_HEADERS+= ranges_reverse_copy.h
398 ALG_HEADERS+= ranges_rotate.h
399 ALG_HEADERS+= ranges_rotate_copy.h
400 ALG_HEADERS+= ranges_sample.h
401 ALG_HEADERS+= ranges_search.h
402 ALG_HEADERS+= ranges_search_n.h
403 ALG_HEADERS+= ranges_set_difference.h
404 ALG_HEADERS+= ranges_set_intersection.h
405 ALG_HEADERS+= ranges_set_symmetric_difference.h
406 ALG_HEADERS+= ranges_set_union.h
407 ALG_HEADERS+= ranges_shuffle.h
408 ALG_HEADERS+= ranges_sort.h
409 ALG_HEADERS+= ranges_sort_heap.h
410 ALG_HEADERS+= ranges_stable_partition.h
411 ALG_HEADERS+= ranges_stable_sort.h
412 ALG_HEADERS+= ranges_swap_ranges.h
413 ALG_HEADERS+= ranges_transform.h
414 ALG_HEADERS+= ranges_unique.h
415 ALG_HEADERS+= ranges_unique_copy.h
416 ALG_HEADERS+= ranges_upper_bound.h
417 ALG_HEADERS+= remove.h
418 ALG_HEADERS+= remove_copy.h
419 ALG_HEADERS+= remove_copy_if.h
420 ALG_HEADERS+= remove_if.h
421 ALG_HEADERS+= replace.h
422 ALG_HEADERS+= replace_copy.h
423 ALG_HEADERS+= replace_copy_if.h
424 ALG_HEADERS+= replace_if.h
425 ALG_HEADERS+= reverse.h
426 ALG_HEADERS+= reverse_copy.h
427 ALG_HEADERS+= rotate.h
428 ALG_HEADERS+= rotate_copy.h
429 ALG_HEADERS+= sample.h
430 ALG_HEADERS+= search.h
431 ALG_HEADERS+= search_n.h
432 ALG_HEADERS+= set_difference.h
433 ALG_HEADERS+= set_intersection.h
434 ALG_HEADERS+= set_symmetric_difference.h
435 ALG_HEADERS+= set_union.h
436 ALG_HEADERS+= shift_left.h
437 ALG_HEADERS+= shift_right.h
438 ALG_HEADERS+= shuffle.h
439 ALG_HEADERS+= sift_down.h
441 ALG_HEADERS+= sort_heap.h
442 ALG_HEADERS+= stable_partition.h
443 ALG_HEADERS+= stable_sort.h
444 ALG_HEADERS+= swap_ranges.h
445 ALG_HEADERS+= transform.h
446 ALG_HEADERS+= uniform_random_bit_generator_adaptor.h
447 ALG_HEADERS+= unique.h
448 ALG_HEADERS+= unique_copy.h
449 ALG_HEADERS+= unwrap_iter.h
450 ALG_HEADERS+= unwrap_range.h
451 ALG_HEADERS+= upper_bound.h
452 .for hdr in ${ALG_HEADERS}
453 ALG+= ${HDRDIR}/__algorithm/${hdr}
457 BITDIR= ${CXXINCLUDEDIR}/__bit
458 BIT_HEADERS+= bit_cast.h
459 BIT_HEADERS+= bit_ceil.h
460 BIT_HEADERS+= bit_floor.h
461 BIT_HEADERS+= bit_log2.h
462 BIT_HEADERS+= bit_width.h
464 BIT_HEADERS+= byteswap.h
465 BIT_HEADERS+= countl.h
466 BIT_HEADERS+= countr.h
467 BIT_HEADERS+= endian.h
468 BIT_HEADERS+= has_single_bit.h
469 BIT_HEADERS+= popcount.h
470 BIT_HEADERS+= rotate.h
471 .for hdr in ${BIT_HEADERS}
472 BIT+= ${HDRDIR}/__bit/${hdr}
476 CHCDIR= ${CXXINCLUDEDIR}/__charconv
477 CHC_HEADERS+= chars_format.h
478 CHC_HEADERS+= from_chars_result.h
479 CHC_HEADERS+= tables.h
480 CHC_HEADERS+= to_chars_base_10.h
481 CHC_HEADERS+= to_chars_result.h
482 .for hdr in ${CHC_HEADERS}
483 CHC+= ${HDRDIR}/__charconv/${hdr}
487 CHRDIR= ${CXXINCLUDEDIR}/__chrono
488 CHR_HEADERS+= calendar.h
489 CHR_HEADERS+= convert_to_timespec.h
490 CHR_HEADERS+= convert_to_tm.h
492 CHR_HEADERS+= duration.h
493 CHR_HEADERS+= file_clock.h
494 CHR_HEADERS+= formatter.h
495 CHR_HEADERS+= hh_mm_ss.h
496 CHR_HEADERS+= high_resolution_clock.h
497 CHR_HEADERS+= literals.h
498 CHR_HEADERS+= month.h
499 CHR_HEADERS+= month_weekday.h
500 CHR_HEADERS+= monthday.h
501 CHR_HEADERS+= ostream.h
502 CHR_HEADERS+= parser_std_format_spec.h
503 CHR_HEADERS+= statically_widen.h
504 CHR_HEADERS+= steady_clock.h
505 CHR_HEADERS+= system_clock.h
506 CHR_HEADERS+= time_point.h
507 CHR_HEADERS+= weekday.h
509 CHR_HEADERS+= year_month.h
510 CHR_HEADERS+= year_month_day.h
511 CHR_HEADERS+= year_month_weekday.h
512 .for hdr in ${CHR_HEADERS}
513 CHR+= ${HDRDIR}/__chrono/${hdr}
517 CMPDIR= ${CXXINCLUDEDIR}/__compare
518 CMP_HEADERS+= common_comparison_category.h
519 CMP_HEADERS+= compare_partial_order_fallback.h
520 CMP_HEADERS+= compare_strong_order_fallback.h
521 CMP_HEADERS+= compare_three_way.h
522 CMP_HEADERS+= compare_three_way_result.h
523 CMP_HEADERS+= compare_weak_order_fallback.h
524 CMP_HEADERS+= is_eq.h
525 CMP_HEADERS+= ordering.h
526 CMP_HEADERS+= partial_order.h
527 CMP_HEADERS+= strong_order.h
528 CMP_HEADERS+= synth_three_way.h
529 CMP_HEADERS+= three_way_comparable.h
530 CMP_HEADERS+= weak_order.h
531 .for hdr in ${CMP_HEADERS}
532 CMP+= ${HDRDIR}/__compare/${hdr}
536 CONDIR= ${CXXINCLUDEDIR}/__concepts
537 CON_HEADERS+= arithmetic.h
538 CON_HEADERS+= assignable.h
539 CON_HEADERS+= boolean_testable.h
540 CON_HEADERS+= class_or_enum.h
541 CON_HEADERS+= common_reference_with.h
542 CON_HEADERS+= common_with.h
543 CON_HEADERS+= constructible.h
544 CON_HEADERS+= convertible_to.h
545 CON_HEADERS+= copyable.h
546 CON_HEADERS+= derived_from.h
547 CON_HEADERS+= destructible.h
548 CON_HEADERS+= different_from.h
549 CON_HEADERS+= equality_comparable.h
550 CON_HEADERS+= invocable.h
551 CON_HEADERS+= movable.h
552 CON_HEADERS+= predicate.h
553 CON_HEADERS+= regular.h
554 CON_HEADERS+= relation.h
555 CON_HEADERS+= same_as.h
556 CON_HEADERS+= semiregular.h
557 CON_HEADERS+= swappable.h
558 CON_HEADERS+= totally_ordered.h
559 .for hdr in ${CON_HEADERS}
560 CON+= ${HDRDIR}/__concepts/${hdr}
564 CORDIR= ${CXXINCLUDEDIR}/__coroutine
565 COR_HEADERS+= coroutine_handle.h
566 COR_HEADERS+= coroutine_traits.h
567 COR_HEADERS+= noop_coroutine_handle.h
568 COR_HEADERS+= trivial_awaitables.h
569 .for hdr in ${COR_HEADERS}
570 COR+= ${HDRDIR}/__coroutine/${hdr}
574 DBGDIR= ${CXXINCLUDEDIR}/__debug_utils
575 DBG_HEADERS+= randomize_range.h
576 .for hdr in ${DBG_HEADERS}
577 DBG+= ${HDRDIR}/__debug_utils/${hdr}
581 EXCDIR= ${CXXINCLUDEDIR}/__expected
582 EXC_HEADERS+= bad_expected_access.h
583 EXC_HEADERS+= expected.h
584 EXC_HEADERS+= unexpect.h
585 EXC_HEADERS+= unexpected.h
586 .for hdr in ${EXC_HEADERS}
587 EXC+= ${HDRDIR}/__expected/${hdr}
591 FSDIR= ${CXXINCLUDEDIR}/__filesystem
592 FS_HEADERS+= copy_options.h
593 FS_HEADERS+= directory_entry.h
594 FS_HEADERS+= directory_iterator.h
595 FS_HEADERS+= directory_options.h
596 FS_HEADERS+= file_status.h
597 FS_HEADERS+= file_time_type.h
598 FS_HEADERS+= file_type.h
599 FS_HEADERS+= filesystem_error.h
600 FS_HEADERS+= operations.h
602 FS_HEADERS+= path_iterator.h
603 FS_HEADERS+= perm_options.h
605 FS_HEADERS+= recursive_directory_iterator.h
606 FS_HEADERS+= space_info.h
607 FS_HEADERS+= u8path.h
608 .for hdr in ${FS_HEADERS}
609 FS+= ${HDRDIR}/__filesystem/${hdr}
613 FMTDIR= ${CXXINCLUDEDIR}/__format
614 FMT_HEADERS+= buffer.h
615 FMT_HEADERS+= concepts.h
616 FMT_HEADERS+= container_adaptor.h
617 FMT_HEADERS+= enable_insertable.h
618 FMT_HEADERS+= escaped_output_table.h
619 FMT_HEADERS+= extended_grapheme_cluster_table.h
620 FMT_HEADERS+= format_arg.h
621 FMT_HEADERS+= format_arg_store.h
622 FMT_HEADERS+= format_args.h
623 FMT_HEADERS+= format_context.h
624 FMT_HEADERS+= format_error.h
625 FMT_HEADERS+= format_functions.h
626 FMT_HEADERS+= format_fwd.h
627 FMT_HEADERS+= format_parse_context.h
628 FMT_HEADERS+= format_string.h
629 FMT_HEADERS+= format_to_n_result.h
630 FMT_HEADERS+= formatter.h
631 FMT_HEADERS+= formatter_bool.h
632 FMT_HEADERS+= formatter_char.h
633 FMT_HEADERS+= formatter_floating_point.h
634 FMT_HEADERS+= formatter_integer.h
635 FMT_HEADERS+= formatter_integral.h
636 FMT_HEADERS+= formatter_output.h
637 FMT_HEADERS+= formatter_pointer.h
638 FMT_HEADERS+= formatter_string.h
639 FMT_HEADERS+= formatter_tuple.h
640 FMT_HEADERS+= parser_std_format_spec.h
641 FMT_HEADERS+= range_default_formatter.h
642 FMT_HEADERS+= range_formatter.h
643 FMT_HEADERS+= unicode.h
644 .for hdr in ${FMT_HEADERS}
645 FMT+= ${HDRDIR}/__format/${hdr}
649 FUNDIR= ${CXXINCLUDEDIR}/__functional
650 FUN_HEADERS+= binary_function.h
651 FUN_HEADERS+= binary_negate.h
653 FUN_HEADERS+= bind_back.h
654 FUN_HEADERS+= bind_front.h
655 FUN_HEADERS+= binder1st.h
656 FUN_HEADERS+= binder2nd.h
657 FUN_HEADERS+= boyer_moore_searcher.h
658 FUN_HEADERS+= compose.h
659 FUN_HEADERS+= default_searcher.h
660 FUN_HEADERS+= function.h
662 FUN_HEADERS+= identity.h
663 FUN_HEADERS+= invoke.h
664 FUN_HEADERS+= is_transparent.h
665 FUN_HEADERS+= mem_fn.h
666 FUN_HEADERS+= mem_fun_ref.h
667 FUN_HEADERS+= not_fn.h
668 FUN_HEADERS+= operations.h
669 FUN_HEADERS+= perfect_forward.h
670 FUN_HEADERS+= pointer_to_binary_function.h
671 FUN_HEADERS+= pointer_to_unary_function.h
672 FUN_HEADERS+= ranges_operations.h
673 FUN_HEADERS+= reference_wrapper.h
674 FUN_HEADERS+= unary_function.h
675 FUN_HEADERS+= unary_negate.h
676 FUN_HEADERS+= unwrap_ref.h
677 FUN_HEADERS+= weak_result_type.h
678 .for hdr in ${FUN_HEADERS}
679 FUN+= ${HDRDIR}/__functional/${hdr}
683 FWDDIR= ${CXXINCLUDEDIR}/__fwd
684 FWD_HEADERS+= array.h
687 FWD_HEADERS+= memory_resource.h
690 FWD_HEADERS+= string.h
691 FWD_HEADERS+= string_view.h
692 FWD_HEADERS+= subrange.h
693 FWD_HEADERS+= tuple.h
694 .for hdr in ${FWD_HEADERS}
695 FWD+= ${HDRDIR}/__fwd/${hdr}
699 IOSDIR= ${CXXINCLUDEDIR}/__ios
701 .for hdr in ${IOS_HEADERS}
702 IOS+= ${HDRDIR}/__ios/${hdr}
706 ITDIR= ${CXXINCLUDEDIR}/__iterator
707 IT_HEADERS+= access.h
708 IT_HEADERS+= advance.h
709 IT_HEADERS+= back_insert_iterator.h
710 IT_HEADERS+= bounded_iter.h
711 IT_HEADERS+= common_iterator.h
712 IT_HEADERS+= concepts.h
713 IT_HEADERS+= counted_iterator.h
715 IT_HEADERS+= default_sentinel.h
716 IT_HEADERS+= distance.h
718 IT_HEADERS+= erase_if_container.h
719 IT_HEADERS+= front_insert_iterator.h
720 IT_HEADERS+= incrementable_traits.h
721 IT_HEADERS+= indirectly_comparable.h
722 IT_HEADERS+= insert_iterator.h
723 IT_HEADERS+= istream_iterator.h
724 IT_HEADERS+= istreambuf_iterator.h
725 IT_HEADERS+= iter_move.h
726 IT_HEADERS+= iter_swap.h
727 IT_HEADERS+= iterator.h
728 IT_HEADERS+= iterator_traits.h
729 IT_HEADERS+= iterator_with_data.h
730 IT_HEADERS+= mergeable.h
731 IT_HEADERS+= move_iterator.h
732 IT_HEADERS+= move_sentinel.h
734 IT_HEADERS+= ostream_iterator.h
735 IT_HEADERS+= ostreambuf_iterator.h
736 IT_HEADERS+= permutable.h
738 IT_HEADERS+= projected.h
739 IT_HEADERS+= readable_traits.h
740 IT_HEADERS+= reverse_access.h
741 IT_HEADERS+= reverse_iterator.h
742 IT_HEADERS+= segmented_iterator.h
744 IT_HEADERS+= sortable.h
745 IT_HEADERS+= unreachable_sentinel.h
746 IT_HEADERS+= wrap_iter.h
747 .for hdr in ${IT_HEADERS}
748 IT+= ${HDRDIR}/__iterator/${hdr}
752 MEMDIR= ${CXXINCLUDEDIR}/__memory
753 MEM_HEADERS+= addressof.h
754 MEM_HEADERS+= align.h
755 MEM_HEADERS+= allocate_at_least.h
756 MEM_HEADERS+= allocation_guard.h
757 MEM_HEADERS+= allocator.h
758 MEM_HEADERS+= allocator_arg_t.h
759 MEM_HEADERS+= allocator_destructor.h
760 MEM_HEADERS+= allocator_traits.h
761 MEM_HEADERS+= assume_aligned.h
762 MEM_HEADERS+= auto_ptr.h
763 MEM_HEADERS+= builtin_new_allocator.h
764 MEM_HEADERS+= compressed_pair.h
765 MEM_HEADERS+= concepts.h
766 MEM_HEADERS+= construct_at.h
767 MEM_HEADERS+= destruct_n.h
768 MEM_HEADERS+= pointer_traits.h
769 MEM_HEADERS+= ranges_construct_at.h
770 MEM_HEADERS+= ranges_uninitialized_algorithms.h
771 MEM_HEADERS+= raw_storage_iterator.h
772 MEM_HEADERS+= shared_ptr.h
773 MEM_HEADERS+= swap_allocator.h
774 MEM_HEADERS+= temp_value.h
775 MEM_HEADERS+= temporary_buffer.h
776 MEM_HEADERS+= uninitialized_algorithms.h
777 MEM_HEADERS+= unique_ptr.h
778 MEM_HEADERS+= uses_allocator.h
779 MEM_HEADERS+= uses_allocator_construction.h
780 MEM_HEADERS+= voidify.h
781 .for hdr in ${MEM_HEADERS}
782 MEM+= ${HDRDIR}/__memory/${hdr}
786 MERDIR= ${CXXINCLUDEDIR}/__memory_resource
787 MER_HEADERS+= memory_resource.h
788 MER_HEADERS+= monotonic_buffer_resource.h
789 MER_HEADERS+= polymorphic_allocator.h
790 MER_HEADERS+= pool_options.h
791 MER_HEADERS+= synchronized_pool_resource.h
792 MER_HEADERS+= unsynchronized_pool_resource.h
793 .for hdr in ${MER_HEADERS}
794 MER+= ${HDRDIR}/__memory_resource/${hdr}
798 NUMDIR= ${CXXINCLUDEDIR}/__numeric
799 NUM_HEADERS+= accumulate.h
800 NUM_HEADERS+= adjacent_difference.h
801 NUM_HEADERS+= exclusive_scan.h
802 NUM_HEADERS+= gcd_lcm.h
803 NUM_HEADERS+= inclusive_scan.h
804 NUM_HEADERS+= inner_product.h
806 NUM_HEADERS+= midpoint.h
807 NUM_HEADERS+= partial_sum.h
808 NUM_HEADERS+= reduce.h
809 NUM_HEADERS+= transform_exclusive_scan.h
810 NUM_HEADERS+= transform_inclusive_scan.h
811 NUM_HEADERS+= transform_reduce.h
812 .for hdr in ${NUM_HEADERS}
813 NUM+= ${HDRDIR}/__numeric/${hdr}
817 RNDDIR= ${CXXINCLUDEDIR}/__random
818 RND_HEADERS+= bernoulli_distribution.h
819 RND_HEADERS+= binomial_distribution.h
820 RND_HEADERS+= cauchy_distribution.h
821 RND_HEADERS+= chi_squared_distribution.h
822 RND_HEADERS+= clamp_to_integral.h
823 RND_HEADERS+= default_random_engine.h
824 RND_HEADERS+= discard_block_engine.h
825 RND_HEADERS+= discrete_distribution.h
826 RND_HEADERS+= exponential_distribution.h
827 RND_HEADERS+= extreme_value_distribution.h
828 RND_HEADERS+= fisher_f_distribution.h
829 RND_HEADERS+= gamma_distribution.h
830 RND_HEADERS+= generate_canonical.h
831 RND_HEADERS+= geometric_distribution.h
832 RND_HEADERS+= independent_bits_engine.h
833 RND_HEADERS+= is_seed_sequence.h
834 RND_HEADERS+= is_valid.h
835 RND_HEADERS+= knuth_b.h
836 RND_HEADERS+= linear_congruential_engine.h
838 RND_HEADERS+= lognormal_distribution.h
839 RND_HEADERS+= mersenne_twister_engine.h
840 RND_HEADERS+= negative_binomial_distribution.h
841 RND_HEADERS+= normal_distribution.h
842 RND_HEADERS+= piecewise_constant_distribution.h
843 RND_HEADERS+= piecewise_linear_distribution.h
844 RND_HEADERS+= poisson_distribution.h
845 RND_HEADERS+= random_device.h
846 RND_HEADERS+= ranlux.h
847 RND_HEADERS+= seed_seq.h
848 RND_HEADERS+= shuffle_order_engine.h
849 RND_HEADERS+= student_t_distribution.h
850 RND_HEADERS+= subtract_with_carry_engine.h
851 RND_HEADERS+= uniform_int_distribution.h
852 RND_HEADERS+= uniform_random_bit_generator.h
853 RND_HEADERS+= uniform_real_distribution.h
854 RND_HEADERS+= weibull_distribution.h
855 .for hdr in ${RND_HEADERS}
856 RND+= ${HDRDIR}/__random/${hdr}
860 RNGDIR= ${CXXINCLUDEDIR}/__ranges
861 RNG_HEADERS+= access.h
863 RNG_HEADERS+= as_rvalue_view.h
864 RNG_HEADERS+= common_view.h
865 RNG_HEADERS+= concepts.h
866 RNG_HEADERS+= copyable_box.h
867 RNG_HEADERS+= counted.h
868 RNG_HEADERS+= dangling.h
870 RNG_HEADERS+= drop_view.h
871 RNG_HEADERS+= drop_while_view.h
872 RNG_HEADERS+= elements_view.h
873 RNG_HEADERS+= empty.h
874 RNG_HEADERS+= empty_view.h
875 RNG_HEADERS+= enable_borrowed_range.h
876 RNG_HEADERS+= enable_view.h
877 RNG_HEADERS+= filter_view.h
878 RNG_HEADERS+= iota_view.h
879 RNG_HEADERS+= istream_view.h
880 RNG_HEADERS+= join_view.h
881 RNG_HEADERS+= lazy_split_view.h
882 RNG_HEADERS+= non_propagating_cache.h
883 RNG_HEADERS+= owning_view.h
884 RNG_HEADERS+= range_adaptor.h
885 RNG_HEADERS+= rbegin.h
886 RNG_HEADERS+= ref_view.h
888 RNG_HEADERS+= reverse_view.h
889 RNG_HEADERS+= single_view.h
891 RNG_HEADERS+= split_view.h
892 RNG_HEADERS+= subrange.h
893 RNG_HEADERS+= take_view.h
894 RNG_HEADERS+= take_while_view.h
895 RNG_HEADERS+= transform_view.h
896 RNG_HEADERS+= view_interface.h
897 RNG_HEADERS+= views.h
898 RNG_HEADERS+= zip_view.h
899 .for hdr in ${RNG_HEADERS}
900 RNG+= ${HDRDIR}/__ranges/${hdr}
904 STRDIR= ${CXXINCLUDEDIR}/__string
905 STR_HEADERS+= char_traits.h
906 STR_HEADERS+= extern_template_lists.h
907 .for hdr in ${STR_HEADERS}
908 STR+= ${HDRDIR}/__string/${hdr}
912 THRDIR= ${CXXINCLUDEDIR}/__thread
913 THR_HEADERS+= poll_with_backoff.h
914 THR_HEADERS+= timed_backoff_policy.h
915 .for hdr in ${THR_HEADERS}
916 THR+= ${HDRDIR}/__thread/${hdr}
920 TUPDIR= ${CXXINCLUDEDIR}/__tuple_dir
921 TUP_HEADERS+= apply_cv.h
922 TUP_HEADERS+= make_tuple_types.h
923 TUP_HEADERS+= pair_like.h
924 TUP_HEADERS+= sfinae_helpers.h
925 TUP_HEADERS+= tuple_element.h
926 TUP_HEADERS+= tuple_indices.h
927 TUP_HEADERS+= tuple_like.h
928 TUP_HEADERS+= tuple_like_ext.h
929 TUP_HEADERS+= tuple_size.h
930 TUP_HEADERS+= tuple_types.h
931 .for hdr in ${TUP_HEADERS}
932 TUP+= ${HDRDIR}/__tuple_dir/${hdr}
936 TTRDIR= ${CXXINCLUDEDIR}/__type_traits
937 TTR_HEADERS+= add_const.h
938 TTR_HEADERS+= add_cv.h
939 TTR_HEADERS+= add_lvalue_reference.h
940 TTR_HEADERS+= add_pointer.h
941 TTR_HEADERS+= add_rvalue_reference.h
942 TTR_HEADERS+= add_volatile.h
943 TTR_HEADERS+= aligned_storage.h
944 TTR_HEADERS+= aligned_union.h
945 TTR_HEADERS+= alignment_of.h
946 TTR_HEADERS+= apply_cv.h
947 TTR_HEADERS+= can_extract_key.h
948 TTR_HEADERS+= common_reference.h
949 TTR_HEADERS+= common_type.h
950 TTR_HEADERS+= conditional.h
951 TTR_HEADERS+= conjunction.h
952 TTR_HEADERS+= copy_cv.h
953 TTR_HEADERS+= copy_cvref.h
954 TTR_HEADERS+= decay.h
955 TTR_HEADERS+= dependent_type.h
956 TTR_HEADERS+= disjunction.h
957 TTR_HEADERS+= enable_if.h
958 TTR_HEADERS+= extent.h
959 TTR_HEADERS+= has_unique_object_representation.h
960 TTR_HEADERS+= has_virtual_destructor.h
961 TTR_HEADERS+= integral_constant.h
962 TTR_HEADERS+= is_abstract.h
963 TTR_HEADERS+= is_aggregate.h
964 TTR_HEADERS+= is_allocator.h
965 TTR_HEADERS+= is_always_bitcastable.h
966 TTR_HEADERS+= is_arithmetic.h
967 TTR_HEADERS+= is_array.h
968 TTR_HEADERS+= is_assignable.h
969 TTR_HEADERS+= is_base_of.h
970 TTR_HEADERS+= is_bounded_array.h
971 TTR_HEADERS+= is_callable.h
972 TTR_HEADERS+= is_char_like_type.h
973 TTR_HEADERS+= is_class.h
974 TTR_HEADERS+= is_compound.h
975 TTR_HEADERS+= is_const.h
976 TTR_HEADERS+= is_constant_evaluated.h
977 TTR_HEADERS+= is_constructible.h
978 TTR_HEADERS+= is_convertible.h
979 TTR_HEADERS+= is_copy_assignable.h
980 TTR_HEADERS+= is_copy_constructible.h
981 TTR_HEADERS+= is_core_convertible.h
982 TTR_HEADERS+= is_default_constructible.h
983 TTR_HEADERS+= is_destructible.h
984 TTR_HEADERS+= is_empty.h
985 TTR_HEADERS+= is_enum.h
986 TTR_HEADERS+= is_final.h
987 TTR_HEADERS+= is_floating_point.h
988 TTR_HEADERS+= is_function.h
989 TTR_HEADERS+= is_fundamental.h
990 TTR_HEADERS+= is_implicitly_default_constructible.h
991 TTR_HEADERS+= is_integral.h
992 TTR_HEADERS+= is_literal_type.h
993 TTR_HEADERS+= is_member_function_pointer.h
994 TTR_HEADERS+= is_member_object_pointer.h
995 TTR_HEADERS+= is_member_pointer.h
996 TTR_HEADERS+= is_move_assignable.h
997 TTR_HEADERS+= is_move_constructible.h
998 TTR_HEADERS+= is_nothrow_assignable.h
999 TTR_HEADERS+= is_nothrow_constructible.h
1000 TTR_HEADERS+= is_nothrow_convertible.h
1001 TTR_HEADERS+= is_nothrow_copy_assignable.h
1002 TTR_HEADERS+= is_nothrow_copy_constructible.h
1003 TTR_HEADERS+= is_nothrow_default_constructible.h
1004 TTR_HEADERS+= is_nothrow_destructible.h
1005 TTR_HEADERS+= is_nothrow_move_assignable.h
1006 TTR_HEADERS+= is_nothrow_move_constructible.h
1007 TTR_HEADERS+= is_null_pointer.h
1008 TTR_HEADERS+= is_object.h
1009 TTR_HEADERS+= is_pod.h
1010 TTR_HEADERS+= is_pointer.h
1011 TTR_HEADERS+= is_polymorphic.h
1012 TTR_HEADERS+= is_primary_template.h
1013 TTR_HEADERS+= is_reference.h
1014 TTR_HEADERS+= is_reference_wrapper.h
1015 TTR_HEADERS+= is_referenceable.h
1016 TTR_HEADERS+= is_same.h
1017 TTR_HEADERS+= is_scalar.h
1018 TTR_HEADERS+= is_scoped_enum.h
1019 TTR_HEADERS+= is_signed.h
1020 TTR_HEADERS+= is_signed_integer.h
1021 TTR_HEADERS+= is_specialization.h
1022 TTR_HEADERS+= is_standard_layout.h
1023 TTR_HEADERS+= is_swappable.h
1024 TTR_HEADERS+= is_trivial.h
1025 TTR_HEADERS+= is_trivially_assignable.h
1026 TTR_HEADERS+= is_trivially_constructible.h
1027 TTR_HEADERS+= is_trivially_copy_assignable.h
1028 TTR_HEADERS+= is_trivially_copy_constructible.h
1029 TTR_HEADERS+= is_trivially_copyable.h
1030 TTR_HEADERS+= is_trivially_default_constructible.h
1031 TTR_HEADERS+= is_trivially_destructible.h
1032 TTR_HEADERS+= is_trivially_move_assignable.h
1033 TTR_HEADERS+= is_trivially_move_constructible.h
1034 TTR_HEADERS+= is_unbounded_array.h
1035 TTR_HEADERS+= is_union.h
1036 TTR_HEADERS+= is_unsigned.h
1037 TTR_HEADERS+= is_unsigned_integer.h
1038 TTR_HEADERS+= is_valid_expansion.h
1039 TTR_HEADERS+= is_void.h
1040 TTR_HEADERS+= is_volatile.h
1041 TTR_HEADERS+= lazy.h
1042 TTR_HEADERS+= make_32_64_or_128_bit.h
1043 TTR_HEADERS+= make_const_lvalue_ref.h
1044 TTR_HEADERS+= make_signed.h
1045 TTR_HEADERS+= make_unsigned.h
1046 TTR_HEADERS+= maybe_const.h
1048 TTR_HEADERS+= negation.h
1049 TTR_HEADERS+= noexcept_move_assign_container.h
1050 TTR_HEADERS+= promote.h
1051 TTR_HEADERS+= rank.h
1052 TTR_HEADERS+= remove_all_extents.h
1053 TTR_HEADERS+= remove_const.h
1054 TTR_HEADERS+= remove_const_ref.h
1055 TTR_HEADERS+= remove_cv.h
1056 TTR_HEADERS+= remove_cvref.h
1057 TTR_HEADERS+= remove_extent.h
1058 TTR_HEADERS+= remove_pointer.h
1059 TTR_HEADERS+= remove_reference.h
1060 TTR_HEADERS+= remove_volatile.h
1061 TTR_HEADERS+= result_of.h
1062 TTR_HEADERS+= strip_signature.h
1063 TTR_HEADERS+= type_identity.h
1064 TTR_HEADERS+= type_list.h
1065 TTR_HEADERS+= underlying_type.h
1066 TTR_HEADERS+= void_t.h
1067 .for hdr in ${TTR_HEADERS}
1068 TTR+= ${HDRDIR}/__type_traits/${hdr}
1072 UTLDIR= ${CXXINCLUDEDIR}/__utility
1073 UTL_HEADERS+= as_const.h
1074 UTL_HEADERS+= auto_cast.h
1076 UTL_HEADERS+= convert_to_integral.h
1077 UTL_HEADERS+= declval.h
1078 UTL_HEADERS+= exception_guard.h
1079 UTL_HEADERS+= exchange.h
1080 UTL_HEADERS+= forward.h
1081 UTL_HEADERS+= forward_like.h
1082 UTL_HEADERS+= in_place.h
1083 UTL_HEADERS+= integer_sequence.h
1084 UTL_HEADERS+= move.h
1085 UTL_HEADERS+= pair.h
1086 UTL_HEADERS+= piecewise_construct.h
1087 UTL_HEADERS+= priority_tag.h
1088 UTL_HEADERS+= rel_ops.h
1089 UTL_HEADERS+= swap.h
1090 UTL_HEADERS+= to_underlying.h
1091 UTL_HEADERS+= unreachable.h
1092 .for hdr in ${UTL_HEADERS}
1093 UTL+= ${HDRDIR}/__utility/${hdr}
1097 VARDIR= ${CXXINCLUDEDIR}/__variant
1098 VAR_HEADERS+= monostate.h
1099 .for hdr in ${VAR_HEADERS}
1100 VAR+= ${HDRDIR}/__variant/${hdr}
1104 EXPDIR= ${CXXINCLUDEDIR}/experimental
1105 EXP_HEADERS+= __config
1106 EXP_HEADERS+= __memory
1107 EXP_HEADERS+= algorithm
1108 EXP_HEADERS+= coroutine
1110 EXP_HEADERS+= forward_list
1111 EXP_HEADERS+= functional
1112 EXP_HEADERS+= iterator
1115 EXP_HEADERS+= memory_resource
1116 EXP_HEADERS+= propagate_const
1120 EXP_HEADERS+= string
1121 EXP_HEADERS+= type_traits
1122 EXP_HEADERS+= unordered_map
1123 EXP_HEADERS+= unordered_set
1124 EXP_HEADERS+= utility
1125 EXP_HEADERS+= vector
1126 .for hdr in ${EXP_HEADERS}
1127 EXP+= ${HDRDIR}/experimental/${hdr}
1131 EXTDIR= ${CXXINCLUDEDIR}/ext
1132 EXT_HEADERS+= __hash
1133 EXT_HEADERS+= hash_map
1134 EXT_HEADERS+= hash_set
1135 .for hdr in ${EXT_HEADERS}
1136 EXT+= ${HDRDIR}/ext/${hdr}
1139 .include <bsd.lib.mk>