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