xref: /freebsd/lib/libc++/Makefile (revision 770cf0a5f02dc8983a89c6568d741fbc25baa999)
1SHLIBDIR?=	/lib
2
3.include <src.opts.mk>
4
5PACKAGE=	clibs
6_LIBCXXRTDIR=	${SRCTOP}/contrib/libcxxrt
7HDRDIR=		${SRCTOP}/contrib/llvm-project/libcxx/include
8SRCDIR=		${SRCTOP}/contrib/llvm-project/libcxx/src
9CXXINCLUDEDIR=	${INCLUDEDIR}/c++/v${SHLIB_MAJOR}
10
11.PATH: ${SRCDIR}
12
13LIB=		c++
14SHLIB_MAJOR=	1
15SHLIB_LDSCRIPT=	libc++.ldscript
16
17SRCS+=		algorithm.cpp
18SRCS+=		any.cpp
19SRCS+=		atomic.cpp
20SRCS+=		barrier.cpp
21SRCS+=		bind.cpp
22SRCS+=		call_once.cpp
23SRCS+=		charconv.cpp
24SRCS+=		chrono.cpp
25SRCS+=		condition_variable.cpp
26SRCS+=		condition_variable_destructor.cpp
27SRCS+=		error_category.cpp
28SRCS+=		exception.cpp
29SRCS+=		expected.cpp
30SRCS+=		filesystem/directory_entry.cpp
31SRCS+=		filesystem/directory_iterator.cpp
32SRCS+=		filesystem/filesystem_clock.cpp
33SRCS+=		filesystem/filesystem_error.cpp
34SRCS+=		filesystem/int128_builtins.cpp
35SRCS+=		filesystem/operations.cpp
36SRCS+=		filesystem/path.cpp
37SRCS+=		fstream.cpp
38SRCS+=		functional.cpp
39SRCS+=		future.cpp
40SRCS+=		hash.cpp
41SRCS+=		ios.cpp
42SRCS+=		ios.instantiations.cpp
43SRCS+=		iostream.cpp
44SRCS+=		locale.cpp
45SRCS+=		memory.cpp
46SRCS+=		memory_resource.cpp
47SRCS+=		mutex.cpp
48SRCS+=		mutex_destructor.cpp
49SRCS+=		new.cpp
50SRCS+=		new_handler.cpp
51SRCS+=		new_helpers.cpp
52SRCS+=		optional.cpp
53SRCS+=		ostream.cpp
54SRCS+=		print.cpp
55SRCS+=		random.cpp
56SRCS+=		random_shuffle.cpp
57SRCS+=		regex.cpp
58SRCS+=		ryu/d2fixed.cpp
59SRCS+=		ryu/d2s.cpp
60SRCS+=		ryu/f2s.cpp
61SRCS+=		shared_mutex.cpp
62SRCS+=		stdexcept.cpp
63SRCS+=		string.cpp
64SRCS+=		strstream.cpp
65SRCS+=		system_error.cpp
66SRCS+=		thread.cpp
67SRCS+=		typeinfo.cpp
68SRCS+=		valarray.cpp
69SRCS+=		variant.cpp
70SRCS+=		vector.cpp
71SRCS+=		verbose_abort.cpp
72
73CXXRT_SRCS+=	auxhelper.cc
74CXXRT_SRCS+=	dynamic_cast.cc
75CXXRT_SRCS+=	exception.cc
76CXXRT_SRCS+=	guard.cc
77CXXRT_SRCS+=	libelftc_dem_gnu3.c
78CXXRT_SRCS+=	memory.cc
79CXXRT_SRCS+=	stdexcept.cc
80CXXRT_SRCS+=	terminate.cc
81CXXRT_SRCS+=	typeinfo.cc
82
83.for _S in ${CXXRT_SRCS}
84CLEANFILES+=	cxxrt_${_S}
85STATICOBJS+=	cxxrt_${_S:R}.o
86cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
87	ln -sf ${.ALLSRC} ${.TARGET}
88.endfor
89
90WARNS?=		0
91CFLAGS+=	-isystem ${SRCDIR}
92CFLAGS+=	-isystem ${.CURDIR}
93CFLAGS+=	-isystem ${HDRDIR}
94CFLAGS+=	-isystem ${_LIBCXXRTDIR}
95CFLAGS+=	-nostdinc++
96CFLAGS+=	-nostdlib
97CFLAGS+=	-D_LIBCPP_BUILDING_LIBRARY
98CFLAGS+=	-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
99CFLAGS+=	-D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES
100CFLAGS+=	-DLIBCXXRT
101CFLAGS+=	-fdata-sections
102CFLAGS+=	-ffunction-sections
103CFLAGS+=	-fno-semantic-interposition
104CFLAGS+=	-fvisibility-inlines-hidden
105CFLAGS+=	-fvisibility=hidden
106
107CFLAGS.charconv.cpp+=	-isystem ${SRCTOP}/contrib/llvm-project/libc
108
109.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} < 130000
110# NOTE: gcc 12 cannot correctly compile all libc++'s C++23 code. To temporarily
111# support gcc 12, compile libc++ in C++20 mode, but this will leave out any
112# C++23 features.
113CXXSTD?=	c++20
114.else
115CXXSTD?=	c++23
116.endif
117
118LIBADD+=	cxxrt
119
120INCSGROUPS+=	STD
121STDDIR=		${CXXINCLUDEDIR}
122STD_HEADERS+=	__assert
123STD_HEADERS+=	__bit_reference
124STD_HEADERS+=	__config
125STD_HEADERS+=	__hash_table
126STD_HEADERS+=	__locale
127STD_HEADERS+=	__mbstate_t.h
128STD_HEADERS+=	__node_handle
129STD_HEADERS+=	__split_buffer
130STD_HEADERS+=	__std_mbstate_t.h
131STD_HEADERS+=	__tree
132STD_HEADERS+=	__undef_macros
133STD_HEADERS+=	__verbose_abort
134STD_HEADERS+=	__verbose_trap
135STD_HEADERS+=	algorithm
136STD_HEADERS+=	any
137STD_HEADERS+=	array
138STD_HEADERS+=	atomic
139STD_HEADERS+=	barrier
140STD_HEADERS+=	bit
141STD_HEADERS+=	bitset
142STD_HEADERS+=	cassert
143STD_HEADERS+=	ccomplex
144STD_HEADERS+=	cctype
145STD_HEADERS+=	cerrno
146STD_HEADERS+=	cfenv
147STD_HEADERS+=	cfloat
148STD_HEADERS+=	charconv
149STD_HEADERS+=	chrono
150STD_HEADERS+=	cinttypes
151STD_HEADERS+=	ciso646
152STD_HEADERS+=	climits
153STD_HEADERS+=	clocale
154STD_HEADERS+=	cmath
155STD_HEADERS+=	codecvt
156STD_HEADERS+=	compare
157STD_HEADERS+=	complex
158STD_HEADERS+=	complex.h
159STD_HEADERS+=	concepts
160STD_HEADERS+=	condition_variable
161STD_HEADERS+=	coroutine
162STD_HEADERS+=	csetjmp
163STD_HEADERS+=	csignal
164STD_HEADERS+=	cstdalign
165STD_HEADERS+=	cstdarg
166STD_HEADERS+=	cstdbool
167STD_HEADERS+=	cstddef
168STD_HEADERS+=	cstdint
169STD_HEADERS+=	cstdio
170STD_HEADERS+=	cstdlib
171STD_HEADERS+=	cstring
172STD_HEADERS+=	ctgmath
173STD_HEADERS+=	ctime
174STD_HEADERS+=	ctype.h
175STD_HEADERS+=	cuchar
176STD_HEADERS+=	cwchar
177STD_HEADERS+=	cwctype
178STD_HEADERS+=	deque
179STD_HEADERS+=	errno.h
180STD_HEADERS+=	exception
181STD_HEADERS+=	execution
182STD_HEADERS+=	expected
183STD_HEADERS+=	fenv.h
184STD_HEADERS+=	filesystem
185STD_HEADERS+=	flat_map
186STD_HEADERS+=	flat_set
187STD_HEADERS+=	float.h
188STD_HEADERS+=	format
189STD_HEADERS+=	forward_list
190STD_HEADERS+=	fstream
191STD_HEADERS+=	functional
192STD_HEADERS+=	future
193STD_HEADERS+=	initializer_list
194STD_HEADERS+=	inttypes.h
195STD_HEADERS+=	iomanip
196STD_HEADERS+=	ios
197STD_HEADERS+=	iosfwd
198STD_HEADERS+=	iostream
199STD_HEADERS+=	istream
200STD_HEADERS+=	iterator
201STD_HEADERS+=	latch
202STD_HEADERS+=	limits
203STD_HEADERS+=	list
204STD_HEADERS+=	locale
205STD_HEADERS+=	map
206STD_HEADERS+=	math.h
207STD_HEADERS+=	mdspan
208STD_HEADERS+=	memory
209STD_HEADERS+=	memory_resource
210STD_HEADERS+=	mutex
211STD_HEADERS+=	new
212STD_HEADERS+=	numbers
213STD_HEADERS+=	numeric
214STD_HEADERS+=	optional
215STD_HEADERS+=	ostream
216STD_HEADERS+=	print
217STD_HEADERS+=	queue
218STD_HEADERS+=	random
219STD_HEADERS+=	ranges
220STD_HEADERS+=	ratio
221STD_HEADERS+=	regex
222STD_HEADERS+=	scoped_allocator
223STD_HEADERS+=	semaphore
224STD_HEADERS+=	set
225STD_HEADERS+=	shared_mutex
226STD_HEADERS+=	source_location
227STD_HEADERS+=	span
228STD_HEADERS+=	sstream
229STD_HEADERS+=	stack
230STD_HEADERS+=	stdatomic.h
231STD_HEADERS+=	stdbool.h
232STD_HEADERS+=	stddef.h
233STD_HEADERS+=	stdexcept
234STD_HEADERS+=	stdio.h
235STD_HEADERS+=	stdlib.h
236STD_HEADERS+=	stop_token
237STD_HEADERS+=	streambuf
238STD_HEADERS+=	string
239STD_HEADERS+=	string.h
240STD_HEADERS+=	string_view
241STD_HEADERS+=	strstream
242STD_HEADERS+=	syncstream
243STD_HEADERS+=	system_error
244STD_HEADERS+=	tgmath.h
245STD_HEADERS+=	thread
246STD_HEADERS+=	tuple
247STD_HEADERS+=	type_traits
248STD_HEADERS+=	typeindex
249STD_HEADERS+=	typeinfo
250STD_HEADERS+=	uchar.h
251STD_HEADERS+=	unordered_map
252STD_HEADERS+=	unordered_set
253STD_HEADERS+=	utility
254STD_HEADERS+=	valarray
255STD_HEADERS+=	variant
256STD_HEADERS+=	vector
257STD_HEADERS+=	version
258STD_HEADERS+=	wchar.h
259STD_HEADERS+=	wctype.h
260.for hdr in ${STD_HEADERS}
261STD+=		${HDRDIR}/${hdr}
262.endfor
263
264# Generated by CMake as of libc++ 18.
265STD+=		${.CURDIR}/__assertion_handler
266
267# Generated by CMake as of libc++ 13.
268STD+=		${.CURDIR}/__config_site
269
270# Generated by CMake as of libc++ 19.
271STD+=		${.CURDIR}/libcxx.imp
272
273# Generated by CMake as of libc++ 21.
274STD+=		${.CURDIR}/module.modulemap
275
276RT_HEADERS+=	cxxabi.h
277.for hdr in ${RT_HEADERS}
278STD+=		${_LIBCXXRTDIR}/${hdr}
279.endfor
280
281INCSGROUPS+=	ALG
282ALGDIR=		${CXXINCLUDEDIR}/__algorithm
283ALG_HEADERS+=	adjacent_find.h
284ALG_HEADERS+=	all_of.h
285ALG_HEADERS+=	any_of.h
286ALG_HEADERS+=	binary_search.h
287ALG_HEADERS+=	clamp.h
288ALG_HEADERS+=	comp.h
289ALG_HEADERS+=	comp_ref_type.h
290ALG_HEADERS+=	copy.h
291ALG_HEADERS+=	copy_backward.h
292ALG_HEADERS+=	copy_if.h
293ALG_HEADERS+=	copy_move_common.h
294ALG_HEADERS+=	copy_n.h
295ALG_HEADERS+=	count.h
296ALG_HEADERS+=	count_if.h
297ALG_HEADERS+=	equal.h
298ALG_HEADERS+=	equal_range.h
299ALG_HEADERS+=	fill.h
300ALG_HEADERS+=	fill_n.h
301ALG_HEADERS+=	find.h
302ALG_HEADERS+=	find_end.h
303ALG_HEADERS+=	find_first_of.h
304ALG_HEADERS+=	find_if.h
305ALG_HEADERS+=	find_if_not.h
306ALG_HEADERS+=	find_segment_if.h
307ALG_HEADERS+=	for_each.h
308ALG_HEADERS+=	for_each_n.h
309ALG_HEADERS+=	for_each_n_segment.h
310ALG_HEADERS+=	for_each_segment.h
311ALG_HEADERS+=	generate.h
312ALG_HEADERS+=	generate_n.h
313ALG_HEADERS+=	half_positive.h
314ALG_HEADERS+=	in_found_result.h
315ALG_HEADERS+=	in_fun_result.h
316ALG_HEADERS+=	in_in_out_result.h
317ALG_HEADERS+=	in_in_result.h
318ALG_HEADERS+=	in_out_out_result.h
319ALG_HEADERS+=	in_out_result.h
320ALG_HEADERS+=	includes.h
321ALG_HEADERS+=	inplace_merge.h
322ALG_HEADERS+=	is_heap.h
323ALG_HEADERS+=	is_heap_until.h
324ALG_HEADERS+=	is_partitioned.h
325ALG_HEADERS+=	is_permutation.h
326ALG_HEADERS+=	is_sorted.h
327ALG_HEADERS+=	is_sorted_until.h
328ALG_HEADERS+=	iter_swap.h
329ALG_HEADERS+=	iterator_operations.h
330ALG_HEADERS+=	lexicographical_compare.h
331ALG_HEADERS+=	lexicographical_compare_three_way.h
332ALG_HEADERS+=	lower_bound.h
333ALG_HEADERS+=	make_heap.h
334ALG_HEADERS+=	make_projected.h
335ALG_HEADERS+=	max.h
336ALG_HEADERS+=	max_element.h
337ALG_HEADERS+=	merge.h
338ALG_HEADERS+=	min.h
339ALG_HEADERS+=	min_element.h
340ALG_HEADERS+=	min_max_result.h
341ALG_HEADERS+=	minmax.h
342ALG_HEADERS+=	minmax_element.h
343ALG_HEADERS+=	mismatch.h
344ALG_HEADERS+=	move.h
345ALG_HEADERS+=	move_backward.h
346ALG_HEADERS+=	next_permutation.h
347ALG_HEADERS+=	none_of.h
348ALG_HEADERS+=	nth_element.h
349ALG_HEADERS+=	out_value_result.h
350ALG_HEADERS+=	partial_sort.h
351ALG_HEADERS+=	partial_sort_copy.h
352ALG_HEADERS+=	partition.h
353ALG_HEADERS+=	partition_copy.h
354ALG_HEADERS+=	partition_point.h
355ALG_HEADERS+=	pop_heap.h
356ALG_HEADERS+=	prev_permutation.h
357ALG_HEADERS+=	pstl.h
358ALG_HEADERS+=	push_heap.h
359ALG_HEADERS+=	radix_sort.h
360ALG_HEADERS+=	ranges_adjacent_find.h
361ALG_HEADERS+=	ranges_all_of.h
362ALG_HEADERS+=	ranges_any_of.h
363ALG_HEADERS+=	ranges_binary_search.h
364ALG_HEADERS+=	ranges_clamp.h
365ALG_HEADERS+=	ranges_contains.h
366ALG_HEADERS+=	ranges_contains_subrange.h
367ALG_HEADERS+=	ranges_copy.h
368ALG_HEADERS+=	ranges_copy_backward.h
369ALG_HEADERS+=	ranges_copy_if.h
370ALG_HEADERS+=	ranges_copy_n.h
371ALG_HEADERS+=	ranges_count.h
372ALG_HEADERS+=	ranges_count_if.h
373ALG_HEADERS+=	ranges_ends_with.h
374ALG_HEADERS+=	ranges_equal.h
375ALG_HEADERS+=	ranges_equal_range.h
376ALG_HEADERS+=	ranges_fill.h
377ALG_HEADERS+=	ranges_fill_n.h
378ALG_HEADERS+=	ranges_find.h
379ALG_HEADERS+=	ranges_find_end.h
380ALG_HEADERS+=	ranges_find_first_of.h
381ALG_HEADERS+=	ranges_find_if.h
382ALG_HEADERS+=	ranges_find_if_not.h
383ALG_HEADERS+=	ranges_find_last.h
384ALG_HEADERS+=	ranges_fold.h
385ALG_HEADERS+=	ranges_for_each.h
386ALG_HEADERS+=	ranges_for_each_n.h
387ALG_HEADERS+=	ranges_generate.h
388ALG_HEADERS+=	ranges_generate_n.h
389ALG_HEADERS+=	ranges_includes.h
390ALG_HEADERS+=	ranges_inplace_merge.h
391ALG_HEADERS+=	ranges_is_heap.h
392ALG_HEADERS+=	ranges_is_heap_until.h
393ALG_HEADERS+=	ranges_is_partitioned.h
394ALG_HEADERS+=	ranges_is_permutation.h
395ALG_HEADERS+=	ranges_is_sorted.h
396ALG_HEADERS+=	ranges_is_sorted_until.h
397ALG_HEADERS+=	ranges_iterator_concept.h
398ALG_HEADERS+=	ranges_lexicographical_compare.h
399ALG_HEADERS+=	ranges_lower_bound.h
400ALG_HEADERS+=	ranges_make_heap.h
401ALG_HEADERS+=	ranges_max.h
402ALG_HEADERS+=	ranges_max_element.h
403ALG_HEADERS+=	ranges_merge.h
404ALG_HEADERS+=	ranges_min.h
405ALG_HEADERS+=	ranges_min_element.h
406ALG_HEADERS+=	ranges_minmax.h
407ALG_HEADERS+=	ranges_minmax_element.h
408ALG_HEADERS+=	ranges_mismatch.h
409ALG_HEADERS+=	ranges_move.h
410ALG_HEADERS+=	ranges_move_backward.h
411ALG_HEADERS+=	ranges_next_permutation.h
412ALG_HEADERS+=	ranges_none_of.h
413ALG_HEADERS+=	ranges_nth_element.h
414ALG_HEADERS+=	ranges_partial_sort.h
415ALG_HEADERS+=	ranges_partial_sort_copy.h
416ALG_HEADERS+=	ranges_partition.h
417ALG_HEADERS+=	ranges_partition_copy.h
418ALG_HEADERS+=	ranges_partition_point.h
419ALG_HEADERS+=	ranges_pop_heap.h
420ALG_HEADERS+=	ranges_prev_permutation.h
421ALG_HEADERS+=	ranges_push_heap.h
422ALG_HEADERS+=	ranges_remove.h
423ALG_HEADERS+=	ranges_remove_copy.h
424ALG_HEADERS+=	ranges_remove_copy_if.h
425ALG_HEADERS+=	ranges_remove_if.h
426ALG_HEADERS+=	ranges_replace.h
427ALG_HEADERS+=	ranges_replace_copy.h
428ALG_HEADERS+=	ranges_replace_copy_if.h
429ALG_HEADERS+=	ranges_replace_if.h
430ALG_HEADERS+=	ranges_reverse.h
431ALG_HEADERS+=	ranges_reverse_copy.h
432ALG_HEADERS+=	ranges_rotate.h
433ALG_HEADERS+=	ranges_rotate_copy.h
434ALG_HEADERS+=	ranges_sample.h
435ALG_HEADERS+=	ranges_search.h
436ALG_HEADERS+=	ranges_search_n.h
437ALG_HEADERS+=	ranges_set_difference.h
438ALG_HEADERS+=	ranges_set_intersection.h
439ALG_HEADERS+=	ranges_set_symmetric_difference.h
440ALG_HEADERS+=	ranges_set_union.h
441ALG_HEADERS+=	ranges_shuffle.h
442ALG_HEADERS+=	ranges_sort.h
443ALG_HEADERS+=	ranges_sort_heap.h
444ALG_HEADERS+=	ranges_stable_partition.h
445ALG_HEADERS+=	ranges_stable_sort.h
446ALG_HEADERS+=	ranges_starts_with.h
447ALG_HEADERS+=	ranges_swap_ranges.h
448ALG_HEADERS+=	ranges_transform.h
449ALG_HEADERS+=	ranges_unique.h
450ALG_HEADERS+=	ranges_unique_copy.h
451ALG_HEADERS+=	ranges_upper_bound.h
452ALG_HEADERS+=	remove.h
453ALG_HEADERS+=	remove_copy.h
454ALG_HEADERS+=	remove_copy_if.h
455ALG_HEADERS+=	remove_if.h
456ALG_HEADERS+=	replace.h
457ALG_HEADERS+=	replace_copy.h
458ALG_HEADERS+=	replace_copy_if.h
459ALG_HEADERS+=	replace_if.h
460ALG_HEADERS+=	reverse.h
461ALG_HEADERS+=	reverse_copy.h
462ALG_HEADERS+=	rotate.h
463ALG_HEADERS+=	rotate_copy.h
464ALG_HEADERS+=	sample.h
465ALG_HEADERS+=	search.h
466ALG_HEADERS+=	search_n.h
467ALG_HEADERS+=	set_difference.h
468ALG_HEADERS+=	set_intersection.h
469ALG_HEADERS+=	set_symmetric_difference.h
470ALG_HEADERS+=	set_union.h
471ALG_HEADERS+=	shift_left.h
472ALG_HEADERS+=	shift_right.h
473ALG_HEADERS+=	shuffle.h
474ALG_HEADERS+=	sift_down.h
475ALG_HEADERS+=	simd_utils.h
476ALG_HEADERS+=	sort.h
477ALG_HEADERS+=	sort_heap.h
478ALG_HEADERS+=	stable_partition.h
479ALG_HEADERS+=	stable_sort.h
480ALG_HEADERS+=	swap_ranges.h
481ALG_HEADERS+=	three_way_comp_ref_type.h
482ALG_HEADERS+=	transform.h
483ALG_HEADERS+=	uniform_random_bit_generator_adaptor.h
484ALG_HEADERS+=	unique.h
485ALG_HEADERS+=	unique_copy.h
486ALG_HEADERS+=	unwrap_iter.h
487ALG_HEADERS+=	unwrap_range.h
488ALG_HEADERS+=	upper_bound.h
489.for hdr in ${ALG_HEADERS}
490ALG+=		${HDRDIR}/__algorithm/${hdr}
491.endfor
492
493INCSGROUPS+=	ATM
494ATMDIR=		${CXXINCLUDEDIR}/__atomic
495ATM_HEADERS+=	aliases.h
496ATM_HEADERS+=	atomic.h
497ATM_HEADERS+=	atomic_flag.h
498ATM_HEADERS+=	atomic_init.h
499ATM_HEADERS+=	atomic_lock_free.h
500ATM_HEADERS+=	atomic_ref.h
501ATM_HEADERS+=	atomic_sync.h
502ATM_HEADERS+=	check_memory_order.h
503ATM_HEADERS+=	contention_t.h
504ATM_HEADERS+=	fence.h
505ATM_HEADERS+=	is_always_lock_free.h
506ATM_HEADERS+=	kill_dependency.h
507ATM_HEADERS+=	memory_order.h
508ATM_HEADERS+=	support.h
509ATM_HEADERS+=	to_gcc_order.h
510.for hdr in ${ATM_HEADERS}
511ATM+=		${HDRDIR}/__atomic/${hdr}
512.endfor
513
514INCSGROUPS+=	ATS
515ATSDIR=		${CXXINCLUDEDIR}/__atomic/support
516ATS_HEADERS+=	c11.h
517ATS_HEADERS+=	gcc.h
518.for hdr in ${ATS_HEADERS}
519ATS+=		${HDRDIR}/__atomic/support/${hdr}
520.endfor
521
522INCSGROUPS+=	BIT
523BITDIR=		${CXXINCLUDEDIR}/__bit
524BIT_HEADERS+=	bit_cast.h
525BIT_HEADERS+=	bit_ceil.h
526BIT_HEADERS+=	bit_floor.h
527BIT_HEADERS+=	bit_log2.h
528BIT_HEADERS+=	bit_width.h
529BIT_HEADERS+=	blsr.h
530BIT_HEADERS+=	byteswap.h
531BIT_HEADERS+=	countl.h
532BIT_HEADERS+=	countr.h
533BIT_HEADERS+=	endian.h
534BIT_HEADERS+=	has_single_bit.h
535BIT_HEADERS+=	invert_if.h
536BIT_HEADERS+=	popcount.h
537BIT_HEADERS+=	rotate.h
538.for hdr in ${BIT_HEADERS}
539BIT+=		${HDRDIR}/__bit/${hdr}
540.endfor
541
542INCSGROUPS+=	CHC
543CHCDIR=		${CXXINCLUDEDIR}/__charconv
544CHC_HEADERS+=	chars_format.h
545CHC_HEADERS+=	from_chars_floating_point.h
546CHC_HEADERS+=	from_chars_integral.h
547CHC_HEADERS+=	from_chars_result.h
548CHC_HEADERS+=	tables.h
549CHC_HEADERS+=	to_chars.h
550CHC_HEADERS+=	to_chars_base_10.h
551CHC_HEADERS+=	to_chars_floating_point.h
552CHC_HEADERS+=	to_chars_integral.h
553CHC_HEADERS+=	to_chars_result.h
554CHC_HEADERS+=	traits.h
555.for hdr in ${CHC_HEADERS}
556CHC+=		${HDRDIR}/__charconv/${hdr}
557.endfor
558
559INCSGROUPS+=	CHR
560CHRDIR=		${CXXINCLUDEDIR}/__chrono
561CHR_HEADERS+=	calendar.h
562CHR_HEADERS+=	concepts.h
563CHR_HEADERS+=	convert_to_timespec.h
564CHR_HEADERS+=	convert_to_tm.h
565CHR_HEADERS+=	day.h
566CHR_HEADERS+=	duration.h
567CHR_HEADERS+=	exception.h
568CHR_HEADERS+=	file_clock.h
569CHR_HEADERS+=	formatter.h
570CHR_HEADERS+=	gps_clock.h
571CHR_HEADERS+=	hh_mm_ss.h
572CHR_HEADERS+=	high_resolution_clock.h
573CHR_HEADERS+=	leap_second.h
574CHR_HEADERS+=	literals.h
575CHR_HEADERS+=	local_info.h
576CHR_HEADERS+=	month.h
577CHR_HEADERS+=	month_weekday.h
578CHR_HEADERS+=	monthday.h
579CHR_HEADERS+=	ostream.h
580CHR_HEADERS+=	parser_std_format_spec.h
581CHR_HEADERS+=	statically_widen.h
582CHR_HEADERS+=	steady_clock.h
583CHR_HEADERS+=	sys_info.h
584CHR_HEADERS+=	system_clock.h
585CHR_HEADERS+=	tai_clock.h
586CHR_HEADERS+=	time_point.h
587CHR_HEADERS+=	time_zone.h
588CHR_HEADERS+=	time_zone_link.h
589CHR_HEADERS+=	tzdb.h
590CHR_HEADERS+=	tzdb_list.h
591CHR_HEADERS+=	utc_clock.h
592CHR_HEADERS+=	weekday.h
593CHR_HEADERS+=	year.h
594CHR_HEADERS+=	year_month.h
595CHR_HEADERS+=	year_month_day.h
596CHR_HEADERS+=	year_month_weekday.h
597CHR_HEADERS+=	zoned_time.h
598.for hdr in ${CHR_HEADERS}
599CHR+=		${HDRDIR}/__chrono/${hdr}
600.endfor
601
602INCSGROUPS+=	CMP
603CMPDIR=		${CXXINCLUDEDIR}/__compare
604CMP_HEADERS+=	common_comparison_category.h
605CMP_HEADERS+=	compare_partial_order_fallback.h
606CMP_HEADERS+=	compare_strong_order_fallback.h
607CMP_HEADERS+=	compare_three_way.h
608CMP_HEADERS+=	compare_three_way_result.h
609CMP_HEADERS+=	compare_weak_order_fallback.h
610CMP_HEADERS+=	is_eq.h
611CMP_HEADERS+=	ordering.h
612CMP_HEADERS+=	partial_order.h
613CMP_HEADERS+=	strong_order.h
614CMP_HEADERS+=	synth_three_way.h
615CMP_HEADERS+=	three_way_comparable.h
616CMP_HEADERS+=	weak_order.h
617.for hdr in ${CMP_HEADERS}
618CMP+=		${HDRDIR}/__compare/${hdr}
619.endfor
620
621INCSGROUPS+=	CON
622CONDIR=		${CXXINCLUDEDIR}/__concepts
623CON_HEADERS+=	arithmetic.h
624CON_HEADERS+=	assignable.h
625CON_HEADERS+=	boolean_testable.h
626CON_HEADERS+=	class_or_enum.h
627CON_HEADERS+=	common_reference_with.h
628CON_HEADERS+=	common_with.h
629CON_HEADERS+=	constructible.h
630CON_HEADERS+=	convertible_to.h
631CON_HEADERS+=	copyable.h
632CON_HEADERS+=	derived_from.h
633CON_HEADERS+=	destructible.h
634CON_HEADERS+=	different_from.h
635CON_HEADERS+=	equality_comparable.h
636CON_HEADERS+=	invocable.h
637CON_HEADERS+=	movable.h
638CON_HEADERS+=	predicate.h
639CON_HEADERS+=	regular.h
640CON_HEADERS+=	relation.h
641CON_HEADERS+=	same_as.h
642CON_HEADERS+=	semiregular.h
643CON_HEADERS+=	swappable.h
644CON_HEADERS+=	totally_ordered.h
645.for hdr in ${CON_HEADERS}
646CON+=		${HDRDIR}/__concepts/${hdr}
647.endfor
648
649INCSGROUPS+=	CND
650CNDDIR=		${CXXINCLUDEDIR}/__condition_variable
651CND_HEADERS+=	condition_variable.h
652.for hdr in ${CND_HEADERS}
653CND+=		${HDRDIR}/__condition_variable/${hdr}
654.endfor
655
656INCSGROUPS+=	CNF
657CNFDIR=		${CXXINCLUDEDIR}/__configuration
658CNF_HEADERS+=	abi.h
659CNF_HEADERS+=	availability.h
660CNF_HEADERS+=	compiler.h
661CNF_HEADERS+=	language.h
662CNF_HEADERS+=	platform.h
663.for hdr in ${CNF_HEADERS}
664CNF+=		${HDRDIR}/__configuration/${hdr}
665.endfor
666
667INCSGROUPS+=	COR
668CORDIR=		${CXXINCLUDEDIR}/__coroutine
669COR_HEADERS+=	coroutine_handle.h
670COR_HEADERS+=	coroutine_traits.h
671COR_HEADERS+=	noop_coroutine_handle.h
672COR_HEADERS+=	trivial_awaitables.h
673.for hdr in ${COR_HEADERS}
674COR+=		${HDRDIR}/__coroutine/${hdr}
675.endfor
676
677INCSGROUPS+=	CST
678CSTDIR=		${CXXINCLUDEDIR}/__cstddef
679CST_HEADERS+=	byte.h
680CST_HEADERS+=	max_align_t.h
681CST_HEADERS+=	nullptr_t.h
682CST_HEADERS+=	ptrdiff_t.h
683CST_HEADERS+=	size_t.h
684.for hdr in ${CST_HEADERS}
685CST+=		${HDRDIR}/__cstddef/${hdr}
686.endfor
687
688INCSGROUPS+=	C3
689C3DIR=		${CXXINCLUDEDIR}/__cxx03
690C3_HEADERS+=	__assert
691C3_HEADERS+=	__bit_reference
692C3_HEADERS+=	__config
693C3_HEADERS+=	__hash_table
694C3_HEADERS+=	__locale
695C3_HEADERS+=	__mbstate_t.h
696C3_HEADERS+=	__split_buffer
697C3_HEADERS+=	__std_clang_module
698C3_HEADERS+=	__std_mbstate_t.h
699C3_HEADERS+=	__tree
700C3_HEADERS+=	__undef_macros
701C3_HEADERS+=	__verbose_abort
702C3_HEADERS+=	__verbose_trap
703C3_HEADERS+=	algorithm
704C3_HEADERS+=	array
705C3_HEADERS+=	atomic
706C3_HEADERS+=	bitset
707C3_HEADERS+=	cassert
708C3_HEADERS+=	ccomplex
709C3_HEADERS+=	cctype
710C3_HEADERS+=	cerrno
711C3_HEADERS+=	cfenv
712C3_HEADERS+=	cfloat
713C3_HEADERS+=	chrono
714C3_HEADERS+=	cinttypes
715C3_HEADERS+=	ciso646
716C3_HEADERS+=	climits
717C3_HEADERS+=	clocale
718C3_HEADERS+=	cmath
719C3_HEADERS+=	codecvt
720C3_HEADERS+=	complex
721C3_HEADERS+=	complex.h
722C3_HEADERS+=	condition_variable
723C3_HEADERS+=	csetjmp
724C3_HEADERS+=	csignal
725C3_HEADERS+=	cstdarg
726C3_HEADERS+=	cstdbool
727C3_HEADERS+=	cstddef
728C3_HEADERS+=	cstdint
729C3_HEADERS+=	cstdio
730C3_HEADERS+=	cstdlib
731C3_HEADERS+=	cstring
732C3_HEADERS+=	ctgmath
733C3_HEADERS+=	ctime
734C3_HEADERS+=	ctype.h
735C3_HEADERS+=	cuchar
736C3_HEADERS+=	cwchar
737C3_HEADERS+=	cwctype
738C3_HEADERS+=	deque
739C3_HEADERS+=	errno.h
740C3_HEADERS+=	exception
741C3_HEADERS+=	fenv.h
742C3_HEADERS+=	float.h
743C3_HEADERS+=	forward_list
744C3_HEADERS+=	fstream
745C3_HEADERS+=	functional
746C3_HEADERS+=	future
747C3_HEADERS+=	inttypes.h
748C3_HEADERS+=	iomanip
749C3_HEADERS+=	ios
750C3_HEADERS+=	iosfwd
751C3_HEADERS+=	iostream
752C3_HEADERS+=	istream
753C3_HEADERS+=	iterator
754C3_HEADERS+=	limits
755C3_HEADERS+=	list
756C3_HEADERS+=	locale
757C3_HEADERS+=	locale.h
758C3_HEADERS+=	map
759C3_HEADERS+=	math.h
760C3_HEADERS+=	memory
761C3_HEADERS+=	module.modulemap
762C3_HEADERS+=	mutex
763C3_HEADERS+=	new
764C3_HEADERS+=	numeric
765C3_HEADERS+=	ostream
766C3_HEADERS+=	queue
767C3_HEADERS+=	random
768C3_HEADERS+=	ratio
769C3_HEADERS+=	regex
770C3_HEADERS+=	set
771C3_HEADERS+=	sstream
772C3_HEADERS+=	stack
773C3_HEADERS+=	stdatomic.h
774C3_HEADERS+=	stdbool.h
775C3_HEADERS+=	stddef.h
776C3_HEADERS+=	stdexcept
777C3_HEADERS+=	stdint.h
778C3_HEADERS+=	stdio.h
779C3_HEADERS+=	stdlib.h
780C3_HEADERS+=	streambuf
781C3_HEADERS+=	string
782C3_HEADERS+=	string.h
783C3_HEADERS+=	string_view
784C3_HEADERS+=	strstream
785C3_HEADERS+=	system_error
786C3_HEADERS+=	tgmath.h
787C3_HEADERS+=	thread
788C3_HEADERS+=	type_traits
789C3_HEADERS+=	typeindex
790C3_HEADERS+=	typeinfo
791C3_HEADERS+=	uchar.h
792C3_HEADERS+=	unordered_map
793C3_HEADERS+=	unordered_set
794C3_HEADERS+=	utility
795C3_HEADERS+=	valarray
796C3_HEADERS+=	vector
797C3_HEADERS+=	version
798C3_HEADERS+=	wchar.h
799C3_HEADERS+=	wctype.h
800.for hdr in ${C3_HEADERS}
801C3+=		${HDRDIR}/__cxx03/${hdr}
802.endfor
803
804INCSGROUPS+=	C3ALG
805C3ALGDIR=	${CXXINCLUDEDIR}/__cxx03/__algorithm
806C3ALG_HEADERS+=	adjacent_find.h
807C3ALG_HEADERS+=	all_of.h
808C3ALG_HEADERS+=	any_of.h
809C3ALG_HEADERS+=	binary_search.h
810C3ALG_HEADERS+=	comp.h
811C3ALG_HEADERS+=	comp_ref_type.h
812C3ALG_HEADERS+=	copy.h
813C3ALG_HEADERS+=	copy_backward.h
814C3ALG_HEADERS+=	copy_if.h
815C3ALG_HEADERS+=	copy_move_common.h
816C3ALG_HEADERS+=	copy_n.h
817C3ALG_HEADERS+=	count.h
818C3ALG_HEADERS+=	count_if.h
819C3ALG_HEADERS+=	equal.h
820C3ALG_HEADERS+=	equal_range.h
821C3ALG_HEADERS+=	fill.h
822C3ALG_HEADERS+=	fill_n.h
823C3ALG_HEADERS+=	find.h
824C3ALG_HEADERS+=	find_end.h
825C3ALG_HEADERS+=	find_first_of.h
826C3ALG_HEADERS+=	find_if.h
827C3ALG_HEADERS+=	find_if_not.h
828C3ALG_HEADERS+=	find_segment_if.h
829C3ALG_HEADERS+=	for_each.h
830C3ALG_HEADERS+=	for_each_segment.h
831C3ALG_HEADERS+=	generate.h
832C3ALG_HEADERS+=	generate_n.h
833C3ALG_HEADERS+=	half_positive.h
834C3ALG_HEADERS+=	includes.h
835C3ALG_HEADERS+=	inplace_merge.h
836C3ALG_HEADERS+=	is_heap.h
837C3ALG_HEADERS+=	is_heap_until.h
838C3ALG_HEADERS+=	is_partitioned.h
839C3ALG_HEADERS+=	is_permutation.h
840C3ALG_HEADERS+=	is_sorted.h
841C3ALG_HEADERS+=	is_sorted_until.h
842C3ALG_HEADERS+=	iter_swap.h
843C3ALG_HEADERS+=	iterator_operations.h
844C3ALG_HEADERS+=	lexicographical_compare.h
845C3ALG_HEADERS+=	lower_bound.h
846C3ALG_HEADERS+=	make_heap.h
847C3ALG_HEADERS+=	make_projected.h
848C3ALG_HEADERS+=	max.h
849C3ALG_HEADERS+=	max_element.h
850C3ALG_HEADERS+=	merge.h
851C3ALG_HEADERS+=	min.h
852C3ALG_HEADERS+=	min_element.h
853C3ALG_HEADERS+=	minmax.h
854C3ALG_HEADERS+=	minmax_element.h
855C3ALG_HEADERS+=	mismatch.h
856C3ALG_HEADERS+=	move.h
857C3ALG_HEADERS+=	move_backward.h
858C3ALG_HEADERS+=	next_permutation.h
859C3ALG_HEADERS+=	none_of.h
860C3ALG_HEADERS+=	nth_element.h
861C3ALG_HEADERS+=	partial_sort.h
862C3ALG_HEADERS+=	partial_sort_copy.h
863C3ALG_HEADERS+=	partition.h
864C3ALG_HEADERS+=	partition_copy.h
865C3ALG_HEADERS+=	partition_point.h
866C3ALG_HEADERS+=	pop_heap.h
867C3ALG_HEADERS+=	prev_permutation.h
868C3ALG_HEADERS+=	push_heap.h
869C3ALG_HEADERS+=	remove.h
870C3ALG_HEADERS+=	remove_copy.h
871C3ALG_HEADERS+=	remove_copy_if.h
872C3ALG_HEADERS+=	remove_if.h
873C3ALG_HEADERS+=	replace.h
874C3ALG_HEADERS+=	replace_copy.h
875C3ALG_HEADERS+=	replace_copy_if.h
876C3ALG_HEADERS+=	replace_if.h
877C3ALG_HEADERS+=	reverse.h
878C3ALG_HEADERS+=	reverse_copy.h
879C3ALG_HEADERS+=	rotate.h
880C3ALG_HEADERS+=	rotate_copy.h
881C3ALG_HEADERS+=	search.h
882C3ALG_HEADERS+=	search_n.h
883C3ALG_HEADERS+=	set_difference.h
884C3ALG_HEADERS+=	set_intersection.h
885C3ALG_HEADERS+=	set_symmetric_difference.h
886C3ALG_HEADERS+=	set_union.h
887C3ALG_HEADERS+=	shuffle.h
888C3ALG_HEADERS+=	sift_down.h
889C3ALG_HEADERS+=	simd_utils.h
890C3ALG_HEADERS+=	sort.h
891C3ALG_HEADERS+=	sort_heap.h
892C3ALG_HEADERS+=	stable_partition.h
893C3ALG_HEADERS+=	stable_sort.h
894C3ALG_HEADERS+=	swap_ranges.h
895C3ALG_HEADERS+=	three_way_comp_ref_type.h
896C3ALG_HEADERS+=	transform.h
897C3ALG_HEADERS+=	uniform_random_bit_generator_adaptor.h
898C3ALG_HEADERS+=	unique.h
899C3ALG_HEADERS+=	unique_copy.h
900C3ALG_HEADERS+=	unwrap_iter.h
901C3ALG_HEADERS+=	unwrap_range.h
902C3ALG_HEADERS+=	upper_bound.h
903.for hdr in ${C3ALG_HEADERS}
904C3ALG+=		${HDRDIR}/__cxx03/__algorithm/${hdr}
905.endfor
906
907INCSGROUPS+=	C3ATM
908C3ATMDIR=	${CXXINCLUDEDIR}/__cxx03/__atomic
909C3ATM_HEADERS+=	aliases.h
910C3ATM_HEADERS+=	atomic.h
911C3ATM_HEADERS+=	atomic_base.h
912C3ATM_HEADERS+=	atomic_flag.h
913C3ATM_HEADERS+=	atomic_init.h
914C3ATM_HEADERS+=	atomic_lock_free.h
915C3ATM_HEADERS+=	atomic_sync.h
916C3ATM_HEADERS+=	check_memory_order.h
917C3ATM_HEADERS+=	contention_t.h
918C3ATM_HEADERS+=	cxx_atomic_impl.h
919C3ATM_HEADERS+=	fence.h
920C3ATM_HEADERS+=	is_always_lock_free.h
921C3ATM_HEADERS+=	kill_dependency.h
922C3ATM_HEADERS+=	memory_order.h
923C3ATM_HEADERS+=	to_gcc_order.h
924.for hdr in ${C3ATM_HEADERS}
925C3ATM+=		${HDRDIR}/__cxx03/__atomic/${hdr}
926.endfor
927
928INCSGROUPS+=	C3BIT
929C3BITDIR=	${CXXINCLUDEDIR}/__cxx03/__bit
930C3BIT_HEADERS+=	blsr.h
931C3BIT_HEADERS+=	countl.h
932C3BIT_HEADERS+=	countr.h
933C3BIT_HEADERS+=	invert_if.h
934C3BIT_HEADERS+=	popcount.h
935C3BIT_HEADERS+=	rotate.h
936.for hdr in ${C3BIT_HEADERS}
937C3BIT+=		${HDRDIR}/__cxx03/__bit/${hdr}
938.endfor
939
940INCSGROUPS+=	C3CHR
941C3CHRDIR=	${CXXINCLUDEDIR}/__cxx03/__chrono
942C3CHR_HEADERS+=	convert_to_timespec.h
943C3CHR_HEADERS+=	duration.h
944C3CHR_HEADERS+=	high_resolution_clock.h
945C3CHR_HEADERS+=	steady_clock.h
946C3CHR_HEADERS+=	system_clock.h
947C3CHR_HEADERS+=	time_point.h
948.for hdr in ${C3CHR_HEADERS}
949C3CHR+=		${HDRDIR}/__cxx03/__chrono/${hdr}
950.endfor
951
952INCSGROUPS+=	C3CND
953C3CNDDIR=	${CXXINCLUDEDIR}/__cxx03/__condition_variable
954C3CND_HEADERS+=	condition_variable.h
955.for hdr in ${C3CND_HEADERS}
956C3CND+=		${HDRDIR}/__cxx03/__condition_variable/${hdr}
957.endfor
958
959INCSGROUPS+=	C3CNF
960C3CNFDIR=	${CXXINCLUDEDIR}/__cxx03/__configuration
961C3CNF_HEADERS+=	abi.h
962C3CNF_HEADERS+=	availability.h
963C3CNF_HEADERS+=	compiler.h
964C3CNF_HEADERS+=	config_site_shim.h
965C3CNF_HEADERS+=	language.h
966C3CNF_HEADERS+=	platform.h
967.for hdr in ${C3CNF_HEADERS}
968C3CNF+=		${HDRDIR}/__cxx03/__configuration/${hdr}
969.endfor
970
971INCSGROUPS+=	C3DBG
972C3DBGDIR=	${CXXINCLUDEDIR}/__cxx03/__debug_utils
973C3DBG_HEADERS+=	randomize_range.h
974C3DBG_HEADERS+=	sanitizers.h
975C3DBG_HEADERS+=	strict_weak_ordering_check.h
976.for hdr in ${C3DBG_HEADERS}
977C3DBG+=		${HDRDIR}/__cxx03/__debug_utils/${hdr}
978.endfor
979
980INCSGROUPS+=	C3EXC
981C3EXCDIR=	${CXXINCLUDEDIR}/__cxx03/__exception
982C3EXC_HEADERS+=	exception.h
983C3EXC_HEADERS+=	exception_ptr.h
984C3EXC_HEADERS+=	nested_exception.h
985C3EXC_HEADERS+=	operations.h
986C3EXC_HEADERS+=	terminate.h
987.for hdr in ${C3EXC_HEADERS}
988C3EXC+=		${HDRDIR}/__cxx03/__exception/${hdr}
989.endfor
990
991INCSGROUPS+=	C3FUN
992C3FUNDIR=	${CXXINCLUDEDIR}/__cxx03/__functional
993C3FUN_HEADERS+=	binary_function.h
994C3FUN_HEADERS+=	binary_negate.h
995C3FUN_HEADERS+=	bind.h
996C3FUN_HEADERS+=	binder1st.h
997C3FUN_HEADERS+=	binder2nd.h
998C3FUN_HEADERS+=	hash.h
999C3FUN_HEADERS+=	identity.h
1000C3FUN_HEADERS+=	mem_fn.h
1001C3FUN_HEADERS+=	mem_fun_ref.h
1002C3FUN_HEADERS+=	operations.h
1003C3FUN_HEADERS+=	pointer_to_binary_function.h
1004C3FUN_HEADERS+=	pointer_to_unary_function.h
1005C3FUN_HEADERS+=	reference_wrapper.h
1006C3FUN_HEADERS+=	unary_function.h
1007C3FUN_HEADERS+=	unary_negate.h
1008C3FUN_HEADERS+=	weak_result_type.h
1009.for hdr in ${C3FUN_HEADERS}
1010C3FUN+=		${HDRDIR}/__cxx03/__functional/${hdr}
1011.endfor
1012
1013INCSGROUPS+=	C3FWD
1014C3FWDDIR=	${CXXINCLUDEDIR}/__cxx03/__fwd
1015C3FWD_HEADERS+=	array.h
1016C3FWD_HEADERS+=	bit_reference.h
1017C3FWD_HEADERS+=	complex.h
1018C3FWD_HEADERS+=	deque.h
1019C3FWD_HEADERS+=	fstream.h
1020C3FWD_HEADERS+=	functional.h
1021C3FWD_HEADERS+=	ios.h
1022C3FWD_HEADERS+=	istream.h
1023C3FWD_HEADERS+=	memory.h
1024C3FWD_HEADERS+=	ostream.h
1025C3FWD_HEADERS+=	pair.h
1026C3FWD_HEADERS+=	queue.h
1027C3FWD_HEADERS+=	sstream.h
1028C3FWD_HEADERS+=	stack.h
1029C3FWD_HEADERS+=	streambuf.h
1030C3FWD_HEADERS+=	string.h
1031C3FWD_HEADERS+=	string_view.h
1032C3FWD_HEADERS+=	tuple.h
1033C3FWD_HEADERS+=	vector.h
1034.for hdr in ${C3FWD_HEADERS}
1035C3FWD+=		${HDRDIR}/__cxx03/__fwd/${hdr}
1036.endfor
1037
1038INCSGROUPS+=	C3IOS
1039C3IOSDIR=	${CXXINCLUDEDIR}/__cxx03/__ios
1040C3IOS_HEADERS+=	fpos.h
1041.for hdr in ${C3IOS_HEADERS}
1042C3IOS+=		${HDRDIR}/__cxx03/__ios/${hdr}
1043.endfor
1044
1045INCSGROUPS+=	C3IT
1046C3ITDIR=	${CXXINCLUDEDIR}/__cxx03/__iterator
1047C3IT_HEADERS+=	access.h
1048C3IT_HEADERS+=	advance.h
1049C3IT_HEADERS+=	aliasing_iterator.h
1050C3IT_HEADERS+=	back_insert_iterator.h
1051C3IT_HEADERS+=	bounded_iter.h
1052C3IT_HEADERS+=	distance.h
1053C3IT_HEADERS+=	erase_if_container.h
1054C3IT_HEADERS+=	front_insert_iterator.h
1055C3IT_HEADERS+=	insert_iterator.h
1056C3IT_HEADERS+=	istream_iterator.h
1057C3IT_HEADERS+=	istreambuf_iterator.h
1058C3IT_HEADERS+=	iterator.h
1059C3IT_HEADERS+=	iterator_traits.h
1060C3IT_HEADERS+=	move_iterator.h
1061C3IT_HEADERS+=	next.h
1062C3IT_HEADERS+=	ostream_iterator.h
1063C3IT_HEADERS+=	ostreambuf_iterator.h
1064C3IT_HEADERS+=	prev.h
1065C3IT_HEADERS+=	reverse_iterator.h
1066C3IT_HEADERS+=	segmented_iterator.h
1067C3IT_HEADERS+=	wrap_iter.h
1068.for hdr in ${C3IT_HEADERS}
1069C3IT+=		${HDRDIR}/__cxx03/__iterator/${hdr}
1070.endfor
1071
1072INCSGROUPS+=	C3LOC
1073C3LOCDIR=	${CXXINCLUDEDIR}/__cxx03/__locale_dir
1074C3LOC_HEADERS+=	locale_base_api.h
1075.for hdr in ${C3LOC_HEADERS}
1076C3LOC+=		${HDRDIR}/__cxx03/__locale_dir/${hdr}
1077.endfor
1078
1079INCSGROUPS+=	C3LBA
1080C3LBADIR=	${CXXINCLUDEDIR}/__cxx03/__locale_dir/locale_base_api
1081C3LBA_HEADERS+=	android.h
1082C3LBA_HEADERS+=	bsd_locale_defaults.h
1083C3LBA_HEADERS+=	bsd_locale_fallbacks.h
1084C3LBA_HEADERS+=	fuchsia.h
1085C3LBA_HEADERS+=	ibm.h
1086C3LBA_HEADERS+=	locale_guard.h
1087C3LBA_HEADERS+=	musl.h
1088C3LBA_HEADERS+=	newlib.h
1089C3LBA_HEADERS+=	openbsd.h
1090C3LBA_HEADERS+=	win32.h
1091.for hdr in ${C3LBA_HEADERS}
1092C3LBA+=		${HDRDIR}/__cxx03/__locale_dir/locale_base_api/${hdr}
1093.endfor
1094
1095INCSGROUPS+=	C3MAT
1096C3MATDIR=	${CXXINCLUDEDIR}/__cxx03/__math
1097C3MAT_HEADERS+=	abs.h
1098C3MAT_HEADERS+=	copysign.h
1099C3MAT_HEADERS+=	error_functions.h
1100C3MAT_HEADERS+=	exponential_functions.h
1101C3MAT_HEADERS+=	fdim.h
1102C3MAT_HEADERS+=	fma.h
1103C3MAT_HEADERS+=	gamma.h
1104C3MAT_HEADERS+=	hyperbolic_functions.h
1105C3MAT_HEADERS+=	hypot.h
1106C3MAT_HEADERS+=	inverse_hyperbolic_functions.h
1107C3MAT_HEADERS+=	inverse_trigonometric_functions.h
1108C3MAT_HEADERS+=	logarithms.h
1109C3MAT_HEADERS+=	min_max.h
1110C3MAT_HEADERS+=	modulo.h
1111C3MAT_HEADERS+=	remainder.h
1112C3MAT_HEADERS+=	roots.h
1113C3MAT_HEADERS+=	rounding_functions.h
1114C3MAT_HEADERS+=	traits.h
1115C3MAT_HEADERS+=	trigonometric_functions.h
1116.for hdr in ${C3MAT_HEADERS}
1117C3MAT+=		${HDRDIR}/__cxx03/__math/${hdr}
1118.endfor
1119
1120INCSGROUPS+=	C3MEM
1121C3MEMDIR=	${CXXINCLUDEDIR}/__cxx03/__memory
1122C3MEM_HEADERS+=	addressof.h
1123C3MEM_HEADERS+=	align.h
1124C3MEM_HEADERS+=	aligned_alloc.h
1125C3MEM_HEADERS+=	allocate_at_least.h
1126C3MEM_HEADERS+=	allocation_guard.h
1127C3MEM_HEADERS+=	allocator.h
1128C3MEM_HEADERS+=	allocator_arg_t.h
1129C3MEM_HEADERS+=	allocator_destructor.h
1130C3MEM_HEADERS+=	allocator_traits.h
1131C3MEM_HEADERS+=	assume_aligned.h
1132C3MEM_HEADERS+=	auto_ptr.h
1133C3MEM_HEADERS+=	builtin_new_allocator.h
1134C3MEM_HEADERS+=	compressed_pair.h
1135C3MEM_HEADERS+=	construct_at.h
1136C3MEM_HEADERS+=	destruct_n.h
1137C3MEM_HEADERS+=	pointer_traits.h
1138C3MEM_HEADERS+=	raw_storage_iterator.h
1139C3MEM_HEADERS+=	shared_ptr.h
1140C3MEM_HEADERS+=	swap_allocator.h
1141C3MEM_HEADERS+=	temp_value.h
1142C3MEM_HEADERS+=	temporary_buffer.h
1143C3MEM_HEADERS+=	uninitialized_algorithms.h
1144C3MEM_HEADERS+=	unique_ptr.h
1145C3MEM_HEADERS+=	uses_allocator.h
1146C3MEM_HEADERS+=	voidify.h
1147.for hdr in ${C3MEM_HEADERS}
1148C3MEM+=		${HDRDIR}/__cxx03/__memory/${hdr}
1149.endfor
1150
1151INCSGROUPS+=	C3MUT
1152C3MUTDIR=	${CXXINCLUDEDIR}/__cxx03/__mutex
1153C3MUT_HEADERS+=	lock_guard.h
1154C3MUT_HEADERS+=	mutex.h
1155C3MUT_HEADERS+=	once_flag.h
1156C3MUT_HEADERS+=	tag_types.h
1157C3MUT_HEADERS+=	unique_lock.h
1158.for hdr in ${C3MUT_HEADERS}
1159C3MUT+=		${HDRDIR}/__cxx03/__mutex/${hdr}
1160.endfor
1161
1162INCSGROUPS+=	C3NUM
1163C3NUMDIR=	${CXXINCLUDEDIR}/__cxx03/__numeric
1164C3NUM_HEADERS+=	accumulate.h
1165C3NUM_HEADERS+=	adjacent_difference.h
1166C3NUM_HEADERS+=	inner_product.h
1167C3NUM_HEADERS+=	iota.h
1168C3NUM_HEADERS+=	partial_sum.h
1169.for hdr in ${C3NUM_HEADERS}
1170C3NUM+=		${HDRDIR}/__cxx03/__numeric/${hdr}
1171.endfor
1172
1173INCSGROUPS+=	C3OST
1174C3OSTDIR=	${CXXINCLUDEDIR}/__cxx03/__ostream
1175C3OST_HEADERS+=	basic_ostream.h
1176.for hdr in ${C3OST_HEADERS}
1177C3OST+=		${HDRDIR}/__cxx03/__ostream/${hdr}
1178.endfor
1179
1180INCSGROUPS+=	C3RND
1181C3RNDDIR=	${CXXINCLUDEDIR}/__cxx03/__random
1182C3RND_HEADERS+=	bernoulli_distribution.h
1183C3RND_HEADERS+=	binomial_distribution.h
1184C3RND_HEADERS+=	cauchy_distribution.h
1185C3RND_HEADERS+=	chi_squared_distribution.h
1186C3RND_HEADERS+=	clamp_to_integral.h
1187C3RND_HEADERS+=	default_random_engine.h
1188C3RND_HEADERS+=	discard_block_engine.h
1189C3RND_HEADERS+=	discrete_distribution.h
1190C3RND_HEADERS+=	exponential_distribution.h
1191C3RND_HEADERS+=	extreme_value_distribution.h
1192C3RND_HEADERS+=	fisher_f_distribution.h
1193C3RND_HEADERS+=	gamma_distribution.h
1194C3RND_HEADERS+=	generate_canonical.h
1195C3RND_HEADERS+=	geometric_distribution.h
1196C3RND_HEADERS+=	independent_bits_engine.h
1197C3RND_HEADERS+=	is_seed_sequence.h
1198C3RND_HEADERS+=	is_valid.h
1199C3RND_HEADERS+=	knuth_b.h
1200C3RND_HEADERS+=	linear_congruential_engine.h
1201C3RND_HEADERS+=	log2.h
1202C3RND_HEADERS+=	lognormal_distribution.h
1203C3RND_HEADERS+=	mersenne_twister_engine.h
1204C3RND_HEADERS+=	negative_binomial_distribution.h
1205C3RND_HEADERS+=	normal_distribution.h
1206C3RND_HEADERS+=	piecewise_constant_distribution.h
1207C3RND_HEADERS+=	piecewise_linear_distribution.h
1208C3RND_HEADERS+=	poisson_distribution.h
1209C3RND_HEADERS+=	random_device.h
1210C3RND_HEADERS+=	ranlux.h
1211C3RND_HEADERS+=	seed_seq.h
1212C3RND_HEADERS+=	shuffle_order_engine.h
1213C3RND_HEADERS+=	student_t_distribution.h
1214C3RND_HEADERS+=	subtract_with_carry_engine.h
1215C3RND_HEADERS+=	uniform_int_distribution.h
1216C3RND_HEADERS+=	uniform_real_distribution.h
1217C3RND_HEADERS+=	weibull_distribution.h
1218.for hdr in ${C3RND_HEADERS}
1219C3RND+=		${HDRDIR}/__cxx03/__random/${hdr}
1220.endfor
1221
1222INCSGROUPS+=	C3ST
1223C3STDIR=	${CXXINCLUDEDIR}/__cxx03/__string
1224C3ST_HEADERS+=	char_traits.h
1225C3ST_HEADERS+=	constexpr_c_functions.h
1226C3ST_HEADERS+=	extern_template_lists.h
1227.for hdr in ${C3ST_HEADERS}
1228C3ST+=		${HDRDIR}/__cxx03/__string/${hdr}
1229.endfor
1230
1231INCSGROUPS+=	C3SER
1232C3SERDIR=	${CXXINCLUDEDIR}/__cxx03/__system_error
1233C3SER_HEADERS+=	errc.h
1234C3SER_HEADERS+=	error_category.h
1235C3SER_HEADERS+=	error_code.h
1236C3SER_HEADERS+=	error_condition.h
1237C3SER_HEADERS+=	system_error.h
1238.for hdr in ${C3SER_HEADERS}
1239C3SER+=		${HDRDIR}/__cxx03/__system_error/${hdr}
1240.endfor
1241
1242INCSGROUPS+=	C3THR
1243C3THRDIR=	${CXXINCLUDEDIR}/__cxx03/__thread
1244C3THR_HEADERS+=	id.h
1245C3THR_HEADERS+=	poll_with_backoff.h
1246C3THR_HEADERS+=	support.h
1247C3THR_HEADERS+=	this_thread.h
1248C3THR_HEADERS+=	thread.h
1249C3THR_HEADERS+=	timed_backoff_policy.h
1250.for hdr in ${C3THR_HEADERS}
1251C3THR+=		${HDRDIR}/__cxx03/__thread/${hdr}
1252.endfor
1253
1254INCSGROUPS+=	C3THS
1255C3THSDIR=	${CXXINCLUDEDIR}/__cxx03/__thread/support
1256C3THS_HEADERS+=	c11.h
1257C3THS_HEADERS+=	external.h
1258C3THS_HEADERS+=	pthread.h
1259C3THS_HEADERS+=	windows.h
1260.for hdr in ${C3THS_HEADERS}
1261C3THS+=		${HDRDIR}/__cxx03/__thread/support/${hdr}
1262.endfor
1263
1264INCSGROUPS+=	C3TUP
1265C3TUPDIR=	${CXXINCLUDEDIR}/__cxx03/__tuple
1266C3TUP_HEADERS+=	find_index.h
1267C3TUP_HEADERS+=	make_tuple_types.h
1268C3TUP_HEADERS+=	sfinae_helpers.h
1269C3TUP_HEADERS+=	tuple_element.h
1270C3TUP_HEADERS+=	tuple_indices.h
1271C3TUP_HEADERS+=	tuple_like.h
1272C3TUP_HEADERS+=	tuple_like_ext.h
1273C3TUP_HEADERS+=	tuple_like_no_subrange.h
1274C3TUP_HEADERS+=	tuple_size.h
1275C3TUP_HEADERS+=	tuple_types.h
1276.for hdr in ${C3TUP_HEADERS}
1277C3TUP+=		${HDRDIR}/__cxx03/__tuple/${hdr}
1278.endfor
1279
1280INCSGROUPS+=	C3TTR
1281C3TTRDIR=	${CXXINCLUDEDIR}/__cxx03/__type_traits
1282C3TTR_HEADERS+=	add_const.h
1283C3TTR_HEADERS+=	add_cv.h
1284C3TTR_HEADERS+=	add_lvalue_reference.h
1285C3TTR_HEADERS+=	add_pointer.h
1286C3TTR_HEADERS+=	add_rvalue_reference.h
1287C3TTR_HEADERS+=	add_volatile.h
1288C3TTR_HEADERS+=	aligned_storage.h
1289C3TTR_HEADERS+=	aligned_union.h
1290C3TTR_HEADERS+=	alignment_of.h
1291C3TTR_HEADERS+=	can_extract_key.h
1292C3TTR_HEADERS+=	common_type.h
1293C3TTR_HEADERS+=	conditional.h
1294C3TTR_HEADERS+=	conjunction.h
1295C3TTR_HEADERS+=	copy_cv.h
1296C3TTR_HEADERS+=	copy_cvref.h
1297C3TTR_HEADERS+=	datasizeof.h
1298C3TTR_HEADERS+=	decay.h
1299C3TTR_HEADERS+=	dependent_type.h
1300C3TTR_HEADERS+=	desugars_to.h
1301C3TTR_HEADERS+=	disjunction.h
1302C3TTR_HEADERS+=	enable_if.h
1303C3TTR_HEADERS+=	extent.h
1304C3TTR_HEADERS+=	has_virtual_destructor.h
1305C3TTR_HEADERS+=	integral_constant.h
1306C3TTR_HEADERS+=	invoke.h
1307C3TTR_HEADERS+=	is_abstract.h
1308C3TTR_HEADERS+=	is_allocator.h
1309C3TTR_HEADERS+=	is_always_bitcastable.h
1310C3TTR_HEADERS+=	is_arithmetic.h
1311C3TTR_HEADERS+=	is_array.h
1312C3TTR_HEADERS+=	is_assignable.h
1313C3TTR_HEADERS+=	is_base_of.h
1314C3TTR_HEADERS+=	is_bounded_array.h
1315C3TTR_HEADERS+=	is_callable.h
1316C3TTR_HEADERS+=	is_char_like_type.h
1317C3TTR_HEADERS+=	is_class.h
1318C3TTR_HEADERS+=	is_compound.h
1319C3TTR_HEADERS+=	is_const.h
1320C3TTR_HEADERS+=	is_constant_evaluated.h
1321C3TTR_HEADERS+=	is_constructible.h
1322C3TTR_HEADERS+=	is_convertible.h
1323C3TTR_HEADERS+=	is_core_convertible.h
1324C3TTR_HEADERS+=	is_destructible.h
1325C3TTR_HEADERS+=	is_empty.h
1326C3TTR_HEADERS+=	is_enum.h
1327C3TTR_HEADERS+=	is_equality_comparable.h
1328C3TTR_HEADERS+=	is_execution_policy.h
1329C3TTR_HEADERS+=	is_final.h
1330C3TTR_HEADERS+=	is_floating_point.h
1331C3TTR_HEADERS+=	is_function.h
1332C3TTR_HEADERS+=	is_fundamental.h
1333C3TTR_HEADERS+=	is_implicitly_default_constructible.h
1334C3TTR_HEADERS+=	is_integral.h
1335C3TTR_HEADERS+=	is_literal_type.h
1336C3TTR_HEADERS+=	is_member_pointer.h
1337C3TTR_HEADERS+=	is_nothrow_assignable.h
1338C3TTR_HEADERS+=	is_nothrow_constructible.h
1339C3TTR_HEADERS+=	is_nothrow_destructible.h
1340C3TTR_HEADERS+=	is_null_pointer.h
1341C3TTR_HEADERS+=	is_object.h
1342C3TTR_HEADERS+=	is_pod.h
1343C3TTR_HEADERS+=	is_pointer.h
1344C3TTR_HEADERS+=	is_polymorphic.h
1345C3TTR_HEADERS+=	is_primary_template.h
1346C3TTR_HEADERS+=	is_reference.h
1347C3TTR_HEADERS+=	is_reference_wrapper.h
1348C3TTR_HEADERS+=	is_referenceable.h
1349C3TTR_HEADERS+=	is_same.h
1350C3TTR_HEADERS+=	is_scalar.h
1351C3TTR_HEADERS+=	is_signed.h
1352C3TTR_HEADERS+=	is_signed_integer.h
1353C3TTR_HEADERS+=	is_specialization.h
1354C3TTR_HEADERS+=	is_standard_layout.h
1355C3TTR_HEADERS+=	is_swappable.h
1356C3TTR_HEADERS+=	is_trivial.h
1357C3TTR_HEADERS+=	is_trivially_assignable.h
1358C3TTR_HEADERS+=	is_trivially_constructible.h
1359C3TTR_HEADERS+=	is_trivially_copyable.h
1360C3TTR_HEADERS+=	is_trivially_destructible.h
1361C3TTR_HEADERS+=	is_trivially_lexicographically_comparable.h
1362C3TTR_HEADERS+=	is_trivially_relocatable.h
1363C3TTR_HEADERS+=	is_unbounded_array.h
1364C3TTR_HEADERS+=	is_union.h
1365C3TTR_HEADERS+=	is_unsigned.h
1366C3TTR_HEADERS+=	is_unsigned_integer.h
1367C3TTR_HEADERS+=	is_valid_expansion.h
1368C3TTR_HEADERS+=	is_void.h
1369C3TTR_HEADERS+=	is_volatile.h
1370C3TTR_HEADERS+=	lazy.h
1371C3TTR_HEADERS+=	make_32_64_or_128_bit.h
1372C3TTR_HEADERS+=	make_const_lvalue_ref.h
1373C3TTR_HEADERS+=	make_signed.h
1374C3TTR_HEADERS+=	make_unsigned.h
1375C3TTR_HEADERS+=	maybe_const.h
1376C3TTR_HEADERS+=	nat.h
1377C3TTR_HEADERS+=	negation.h
1378C3TTR_HEADERS+=	noexcept_move_assign_container.h
1379C3TTR_HEADERS+=	promote.h
1380C3TTR_HEADERS+=	rank.h
1381C3TTR_HEADERS+=	remove_all_extents.h
1382C3TTR_HEADERS+=	remove_const.h
1383C3TTR_HEADERS+=	remove_const_ref.h
1384C3TTR_HEADERS+=	remove_cv.h
1385C3TTR_HEADERS+=	remove_cvref.h
1386C3TTR_HEADERS+=	remove_extent.h
1387C3TTR_HEADERS+=	remove_pointer.h
1388C3TTR_HEADERS+=	remove_reference.h
1389C3TTR_HEADERS+=	remove_volatile.h
1390C3TTR_HEADERS+=	result_of.h
1391C3TTR_HEADERS+=	strip_signature.h
1392C3TTR_HEADERS+=	type_identity.h
1393C3TTR_HEADERS+=	type_list.h
1394C3TTR_HEADERS+=	underlying_type.h
1395C3TTR_HEADERS+=	unwrap_ref.h
1396C3TTR_HEADERS+=	void_t.h
1397.for hdr in ${C3TTR_HEADERS}
1398C3TTR+=		${HDRDIR}/__cxx03/__type_traits/${hdr}
1399.endfor
1400
1401INCSGROUPS+=	C3UTL
1402C3UTLDIR=	${CXXINCLUDEDIR}/__cxx03/__utility
1403C3UTL_HEADERS+=	as_lvalue.h
1404C3UTL_HEADERS+=	auto_cast.h
1405C3UTL_HEADERS+=	convert_to_integral.h
1406C3UTL_HEADERS+=	declval.h
1407C3UTL_HEADERS+=	empty.h
1408C3UTL_HEADERS+=	exception_guard.h
1409C3UTL_HEADERS+=	forward.h
1410C3UTL_HEADERS+=	integer_sequence.h
1411C3UTL_HEADERS+=	is_pointer_in_range.h
1412C3UTL_HEADERS+=	is_valid_range.h
1413C3UTL_HEADERS+=	move.h
1414C3UTL_HEADERS+=	no_destroy.h
1415C3UTL_HEADERS+=	pair.h
1416C3UTL_HEADERS+=	piecewise_construct.h
1417C3UTL_HEADERS+=	priority_tag.h
1418C3UTL_HEADERS+=	private_constructor_tag.h
1419C3UTL_HEADERS+=	rel_ops.h
1420C3UTL_HEADERS+=	small_buffer.h
1421C3UTL_HEADERS+=	swap.h
1422C3UTL_HEADERS+=	unreachable.h
1423.for hdr in ${C3UTL_HEADERS}
1424C3UTL+=		${HDRDIR}/__cxx03/__utility/${hdr}
1425.endfor
1426
1427INCSGROUPS+=	C3VAR
1428C3VARDIR=	${CXXINCLUDEDIR}/__cxx03/__variant
1429C3VAR_HEADERS+=	monostate.h
1430.for hdr in ${C3VAR_HEADERS}
1431C3VAR+=		${HDRDIR}/__cxx03/__variant/${hdr}
1432.endfor
1433
1434INCSGROUPS+=	C3EXP
1435C3EXPDIR=	${CXXINCLUDEDIR}/__cxx03/experimental
1436C3EXP_HEADERS+=	__config
1437C3EXP_HEADERS+=	utility
1438.for hdr in ${C3EXP_HEADERS}
1439C3EXP+=		${HDRDIR}/__cxx03/experimental/${hdr}
1440.endfor
1441
1442INCSGROUPS+=	C3EXT
1443C3EXTDIR=	${CXXINCLUDEDIR}/__cxx03/ext
1444C3EXT_HEADERS+=	__hash
1445C3EXT_HEADERS+=	hash_map
1446C3EXT_HEADERS+=	hash_set
1447.for hdr in ${C3EXT_HEADERS}
1448C3EXT+=		${HDRDIR}/__cxx03/ext/${hdr}
1449.endfor
1450
1451INCSGROUPS+=	DBG
1452DBGDIR=		${CXXINCLUDEDIR}/__debug_utils
1453DBG_HEADERS+=	randomize_range.h
1454DBG_HEADERS+=	sanitizers.h
1455DBG_HEADERS+=	strict_weak_ordering_check.h
1456.for hdr in ${DBG_HEADERS}
1457DBG+=		${HDRDIR}/__debug_utils/${hdr}
1458.endfor
1459
1460INCSGROUPS+=	EXC
1461EXCDIR=		${CXXINCLUDEDIR}/__exception
1462EXC_HEADERS+=	exception.h
1463EXC_HEADERS+=	exception_ptr.h
1464EXC_HEADERS+=	nested_exception.h
1465EXC_HEADERS+=	operations.h
1466EXC_HEADERS+=	terminate.h
1467.for hdr in ${EXC_HEADERS}
1468EXC+=		${HDRDIR}/__exception/${hdr}
1469.endfor
1470
1471INCSGROUPS+=	EXD
1472EXDDIR=		${CXXINCLUDEDIR}/__expected
1473EXD_HEADERS+=	bad_expected_access.h
1474EXD_HEADERS+=	expected.h
1475EXD_HEADERS+=	unexpect.h
1476EXD_HEADERS+=	unexpected.h
1477.for hdr in ${EXD_HEADERS}
1478EXD+=		${HDRDIR}/__expected/${hdr}
1479.endfor
1480
1481INCSGROUPS+=	FS
1482FSDIR=		${CXXINCLUDEDIR}/__filesystem
1483FS_HEADERS+=	copy_options.h
1484FS_HEADERS+=	directory_entry.h
1485FS_HEADERS+=	directory_iterator.h
1486FS_HEADERS+=	directory_options.h
1487FS_HEADERS+=	file_status.h
1488FS_HEADERS+=	file_time_type.h
1489FS_HEADERS+=	file_type.h
1490FS_HEADERS+=	filesystem_error.h
1491FS_HEADERS+=	operations.h
1492FS_HEADERS+=	path.h
1493FS_HEADERS+=	path_iterator.h
1494FS_HEADERS+=	perm_options.h
1495FS_HEADERS+=	perms.h
1496FS_HEADERS+=	recursive_directory_iterator.h
1497FS_HEADERS+=	space_info.h
1498FS_HEADERS+=	u8path.h
1499.for hdr in ${FS_HEADERS}
1500FS+=		${HDRDIR}/__filesystem/${hdr}
1501.endfor
1502
1503INCSGROUPS+=	FLM
1504FLMDIR=		${CXXINCLUDEDIR}/__flat_map
1505FLM_HEADERS+=	flat_map.h
1506FLM_HEADERS+=	flat_multimap.h
1507FLM_HEADERS+=	key_value_iterator.h
1508FLM_HEADERS+=	sorted_equivalent.h
1509FLM_HEADERS+=	sorted_unique.h
1510FLM_HEADERS+=	utils.h
1511.for hdr in ${FLM_HEADERS}
1512FLM+=		${HDRDIR}/__flat_map/${hdr}
1513.endfor
1514
1515INCSGROUPS+=	FLS
1516FLSDIR=		${CXXINCLUDEDIR}/__flat_set
1517FLS_HEADERS+=	flat_multiset.h
1518FLS_HEADERS+=	flat_set.h
1519FLS_HEADERS+=	ra_iterator.h
1520FLS_HEADERS+=	utils.h
1521.for hdr in ${FLS_HEADERS}
1522FLS+=		${HDRDIR}/__flat_set/${hdr}
1523.endfor
1524
1525INCSGROUPS+=	FMT
1526FMTDIR=		${CXXINCLUDEDIR}/__format
1527FMT_HEADERS+=	buffer.h
1528FMT_HEADERS+=	concepts.h
1529FMT_HEADERS+=	container_adaptor.h
1530FMT_HEADERS+=	enable_insertable.h
1531FMT_HEADERS+=	escaped_output_table.h
1532FMT_HEADERS+=	extended_grapheme_cluster_table.h
1533FMT_HEADERS+=	format_arg.h
1534FMT_HEADERS+=	format_arg_store.h
1535FMT_HEADERS+=	format_args.h
1536FMT_HEADERS+=	format_context.h
1537FMT_HEADERS+=	format_error.h
1538FMT_HEADERS+=	format_functions.h
1539FMT_HEADERS+=	format_parse_context.h
1540FMT_HEADERS+=	format_string.h
1541FMT_HEADERS+=	format_to_n_result.h
1542FMT_HEADERS+=	formatter.h
1543FMT_HEADERS+=	formatter_bool.h
1544FMT_HEADERS+=	formatter_char.h
1545FMT_HEADERS+=	formatter_floating_point.h
1546FMT_HEADERS+=	formatter_integer.h
1547FMT_HEADERS+=	formatter_integral.h
1548FMT_HEADERS+=	formatter_output.h
1549FMT_HEADERS+=	formatter_pointer.h
1550FMT_HEADERS+=	formatter_string.h
1551FMT_HEADERS+=	formatter_tuple.h
1552FMT_HEADERS+=	indic_conjunct_break_table.h
1553FMT_HEADERS+=	parser_std_format_spec.h
1554FMT_HEADERS+=	range_default_formatter.h
1555FMT_HEADERS+=	range_formatter.h
1556FMT_HEADERS+=	unicode.h
1557FMT_HEADERS+=	width_estimation_table.h
1558FMT_HEADERS+=	write_escaped.h
1559.for hdr in ${FMT_HEADERS}
1560FMT+=		${HDRDIR}/__format/${hdr}
1561.endfor
1562
1563INCSGROUPS+=	FUN
1564FUNDIR=		${CXXINCLUDEDIR}/__functional
1565FUN_HEADERS+=	binary_function.h
1566FUN_HEADERS+=	binary_negate.h
1567FUN_HEADERS+=	bind.h
1568FUN_HEADERS+=	bind_back.h
1569FUN_HEADERS+=	bind_front.h
1570FUN_HEADERS+=	binder1st.h
1571FUN_HEADERS+=	binder2nd.h
1572FUN_HEADERS+=	boyer_moore_searcher.h
1573FUN_HEADERS+=	compose.h
1574FUN_HEADERS+=	default_searcher.h
1575FUN_HEADERS+=	function.h
1576FUN_HEADERS+=	hash.h
1577FUN_HEADERS+=	identity.h
1578FUN_HEADERS+=	invoke.h
1579FUN_HEADERS+=	is_transparent.h
1580FUN_HEADERS+=	mem_fn.h
1581FUN_HEADERS+=	mem_fun_ref.h
1582FUN_HEADERS+=	not_fn.h
1583FUN_HEADERS+=	operations.h
1584FUN_HEADERS+=	perfect_forward.h
1585FUN_HEADERS+=	pointer_to_binary_function.h
1586FUN_HEADERS+=	pointer_to_unary_function.h
1587FUN_HEADERS+=	ranges_operations.h
1588FUN_HEADERS+=	reference_wrapper.h
1589FUN_HEADERS+=	unary_function.h
1590FUN_HEADERS+=	unary_negate.h
1591FUN_HEADERS+=	weak_result_type.h
1592.for hdr in ${FUN_HEADERS}
1593FUN+=		${HDRDIR}/__functional/${hdr}
1594.endfor
1595
1596INCSGROUPS+=	FWD
1597FWDDIR=		${CXXINCLUDEDIR}/__fwd
1598FWD_HEADERS+=	array.h
1599FWD_HEADERS+=	bit_reference.h
1600FWD_HEADERS+=	byte.h
1601FWD_HEADERS+=	complex.h
1602FWD_HEADERS+=	deque.h
1603FWD_HEADERS+=	format.h
1604FWD_HEADERS+=	fstream.h
1605FWD_HEADERS+=	functional.h
1606FWD_HEADERS+=	get.h
1607FWD_HEADERS+=	ios.h
1608FWD_HEADERS+=	istream.h
1609FWD_HEADERS+=	map.h
1610FWD_HEADERS+=	mdspan.h
1611FWD_HEADERS+=	memory.h
1612FWD_HEADERS+=	memory_resource.h
1613FWD_HEADERS+=	ostream.h
1614FWD_HEADERS+=	pair.h
1615FWD_HEADERS+=	queue.h
1616FWD_HEADERS+=	set.h
1617FWD_HEADERS+=	span.h
1618FWD_HEADERS+=	sstream.h
1619FWD_HEADERS+=	stack.h
1620FWD_HEADERS+=	streambuf.h
1621FWD_HEADERS+=	string.h
1622FWD_HEADERS+=	string_view.h
1623FWD_HEADERS+=	subrange.h
1624FWD_HEADERS+=	tuple.h
1625FWD_HEADERS+=	variant.h
1626FWD_HEADERS+=	vector.h
1627.for hdr in ${FWD_HEADERS}
1628FWD+=		${HDRDIR}/__fwd/${hdr}
1629.endfor
1630
1631INCSGROUPS+=	IOS
1632IOSDIR=		${CXXINCLUDEDIR}/__ios
1633IOS_HEADERS+=	fpos.h
1634.for hdr in ${IOS_HEADERS}
1635IOS+=		${HDRDIR}/__ios/${hdr}
1636.endfor
1637
1638INCSGROUPS+=	IT
1639ITDIR=		${CXXINCLUDEDIR}/__iterator
1640IT_HEADERS+=	access.h
1641IT_HEADERS+=	advance.h
1642IT_HEADERS+=	aliasing_iterator.h
1643IT_HEADERS+=	back_insert_iterator.h
1644IT_HEADERS+=	bounded_iter.h
1645IT_HEADERS+=	common_iterator.h
1646IT_HEADERS+=	concepts.h
1647IT_HEADERS+=	counted_iterator.h
1648IT_HEADERS+=	cpp17_iterator_concepts.h
1649IT_HEADERS+=	data.h
1650IT_HEADERS+=	default_sentinel.h
1651IT_HEADERS+=	distance.h
1652IT_HEADERS+=	empty.h
1653IT_HEADERS+=	erase_if_container.h
1654IT_HEADERS+=	front_insert_iterator.h
1655IT_HEADERS+=	incrementable_traits.h
1656IT_HEADERS+=	indirectly_comparable.h
1657IT_HEADERS+=	insert_iterator.h
1658IT_HEADERS+=	istream_iterator.h
1659IT_HEADERS+=	istreambuf_iterator.h
1660IT_HEADERS+=	iter_move.h
1661IT_HEADERS+=	iter_swap.h
1662IT_HEADERS+=	iterator.h
1663IT_HEADERS+=	iterator_traits.h
1664IT_HEADERS+=	iterator_with_data.h
1665IT_HEADERS+=	mergeable.h
1666IT_HEADERS+=	move_iterator.h
1667IT_HEADERS+=	move_sentinel.h
1668IT_HEADERS+=	next.h
1669IT_HEADERS+=	ostream_iterator.h
1670IT_HEADERS+=	ostreambuf_iterator.h
1671IT_HEADERS+=	permutable.h
1672IT_HEADERS+=	prev.h
1673IT_HEADERS+=	product_iterator.h
1674IT_HEADERS+=	projected.h
1675IT_HEADERS+=	ranges_iterator_traits.h
1676IT_HEADERS+=	readable_traits.h
1677IT_HEADERS+=	reverse_access.h
1678IT_HEADERS+=	reverse_iterator.h
1679IT_HEADERS+=	segmented_iterator.h
1680IT_HEADERS+=	size.h
1681IT_HEADERS+=	sortable.h
1682IT_HEADERS+=	static_bounded_iter.h
1683IT_HEADERS+=	unreachable_sentinel.h
1684IT_HEADERS+=	wrap_iter.h
1685.for hdr in ${IT_HEADERS}
1686IT+=		${HDRDIR}/__iterator/${hdr}
1687.endfor
1688
1689INCSGROUPS+=	LOC
1690LOCDIR=		${CXXINCLUDEDIR}/__locale_dir
1691LOC_HEADERS+=	check_grouping.h
1692LOC_HEADERS+=	get_c_locale.h
1693LOC_HEADERS+=	locale_base_api.h
1694LOC_HEADERS+=	messages.h
1695LOC_HEADERS+=	money.h
1696LOC_HEADERS+=	num.h
1697LOC_HEADERS+=	pad_and_output.h
1698LOC_HEADERS+=	scan_keyword.h
1699LOC_HEADERS+=	time.h
1700LOC_HEADERS+=	wbuffer_convert.h
1701LOC_HEADERS+=	wstring_convert.h
1702.for hdr in ${LOC_HEADERS}
1703LOC+=		${HDRDIR}/__locale_dir/${hdr}
1704.endfor
1705
1706INCSGROUPS+=	LBA
1707LBADIR=		${CXXINCLUDEDIR}/__locale_dir/locale_base_api
1708LBA_HEADERS+=	android.h
1709LBA_HEADERS+=	bsd_locale_fallbacks.h
1710LBA_HEADERS+=	ibm.h
1711LBA_HEADERS+=	musl.h
1712LBA_HEADERS+=	openbsd.h
1713.for hdr in ${LBA_HEADERS}
1714LBA+=		${HDRDIR}/__locale_dir/locale_base_api/${hdr}
1715.endfor
1716
1717INCSGROUPS+=	LBS
1718LBSDIR=		${CXXINCLUDEDIR}/__locale_dir/support
1719LBS_HEADERS+=	apple.h
1720LBS_HEADERS+=	bsd_like.h
1721LBS_HEADERS+=	freebsd.h
1722LBS_HEADERS+=	fuchsia.h
1723LBS_HEADERS+=	linux.h
1724LBS_HEADERS+=	windows.h
1725.for hdr in ${LBS_HEADERS}
1726LBS+=		${HDRDIR}/__locale_dir/support/${hdr}
1727.endfor
1728
1729INCSGROUPS+=	LBN
1730LBNDIR=		${CXXINCLUDEDIR}/__locale_dir/support/no_locale
1731LBN_HEADERS+=	characters.h
1732LBN_HEADERS+=	strtonum.h
1733.for hdr in ${LBN_HEADERS}
1734LBN+=		${HDRDIR}/__locale_dir/support/no_locale/${hdr}
1735.endfor
1736
1737INCSGROUPS+=	MAT
1738MATDIR=		${CXXINCLUDEDIR}/__math
1739MAT_HEADERS+=	abs.h
1740MAT_HEADERS+=	copysign.h
1741MAT_HEADERS+=	error_functions.h
1742MAT_HEADERS+=	exponential_functions.h
1743MAT_HEADERS+=	fdim.h
1744MAT_HEADERS+=	fma.h
1745MAT_HEADERS+=	gamma.h
1746MAT_HEADERS+=	hyperbolic_functions.h
1747MAT_HEADERS+=	hypot.h
1748MAT_HEADERS+=	inverse_hyperbolic_functions.h
1749MAT_HEADERS+=	inverse_trigonometric_functions.h
1750MAT_HEADERS+=	logarithms.h
1751MAT_HEADERS+=	min_max.h
1752MAT_HEADERS+=	modulo.h
1753MAT_HEADERS+=	remainder.h
1754MAT_HEADERS+=	roots.h
1755MAT_HEADERS+=	rounding_functions.h
1756MAT_HEADERS+=	special_functions.h
1757MAT_HEADERS+=	traits.h
1758MAT_HEADERS+=	trigonometric_functions.h
1759.for hdr in ${MAT_HEADERS}
1760MAT+=		${HDRDIR}/__math/${hdr}
1761.endfor
1762
1763INCSGROUPS+=	MDS
1764MDSDIR=		${CXXINCLUDEDIR}/__mdspan
1765MDS_HEADERS+=	aligned_accessor.h
1766MDS_HEADERS+=	default_accessor.h
1767MDS_HEADERS+=	extents.h
1768MDS_HEADERS+=	layout_left.h
1769MDS_HEADERS+=	layout_right.h
1770MDS_HEADERS+=	layout_stride.h
1771MDS_HEADERS+=	mdspan.h
1772.for hdr in ${MDS_HEADERS}
1773MDS+=		${HDRDIR}/__mdspan/${hdr}
1774.endfor
1775
1776INCSGROUPS+=	MEM
1777MEMDIR=		${CXXINCLUDEDIR}/__memory
1778MEM_HEADERS+=	addressof.h
1779MEM_HEADERS+=	align.h
1780MEM_HEADERS+=	aligned_alloc.h
1781MEM_HEADERS+=	allocate_at_least.h
1782MEM_HEADERS+=	allocation_guard.h
1783MEM_HEADERS+=	allocator.h
1784MEM_HEADERS+=	allocator_arg_t.h
1785MEM_HEADERS+=	allocator_destructor.h
1786MEM_HEADERS+=	allocator_traits.h
1787MEM_HEADERS+=	array_cookie.h
1788MEM_HEADERS+=	assume_aligned.h
1789MEM_HEADERS+=	auto_ptr.h
1790MEM_HEADERS+=	compressed_pair.h
1791MEM_HEADERS+=	concepts.h
1792MEM_HEADERS+=	construct_at.h
1793MEM_HEADERS+=	destroy.h
1794MEM_HEADERS+=	destruct_n.h
1795MEM_HEADERS+=	inout_ptr.h
1796MEM_HEADERS+=	is_sufficiently_aligned.h
1797MEM_HEADERS+=	noexcept_move_assign_container.h
1798MEM_HEADERS+=	out_ptr.h
1799MEM_HEADERS+=	pointer_traits.h
1800MEM_HEADERS+=	ranges_construct_at.h
1801MEM_HEADERS+=	ranges_destroy.h
1802MEM_HEADERS+=	ranges_uninitialized_algorithms.h
1803MEM_HEADERS+=	raw_storage_iterator.h
1804MEM_HEADERS+=	shared_count.h
1805MEM_HEADERS+=	shared_ptr.h
1806MEM_HEADERS+=	swap_allocator.h
1807MEM_HEADERS+=	temp_value.h
1808MEM_HEADERS+=	temporary_buffer.h
1809MEM_HEADERS+=	uninitialized_algorithms.h
1810MEM_HEADERS+=	unique_ptr.h
1811MEM_HEADERS+=	unique_temporary_buffer.h
1812MEM_HEADERS+=	uses_allocator.h
1813MEM_HEADERS+=	uses_allocator_construction.h
1814.for hdr in ${MEM_HEADERS}
1815MEM+=		${HDRDIR}/__memory/${hdr}
1816.endfor
1817
1818INCSGROUPS+=	MER
1819MERDIR=		${CXXINCLUDEDIR}/__memory_resource
1820MER_HEADERS+=	memory_resource.h
1821MER_HEADERS+=	monotonic_buffer_resource.h
1822MER_HEADERS+=	polymorphic_allocator.h
1823MER_HEADERS+=	pool_options.h
1824MER_HEADERS+=	synchronized_pool_resource.h
1825MER_HEADERS+=	unsynchronized_pool_resource.h
1826.for hdr in ${MER_HEADERS}
1827MER+=		${HDRDIR}/__memory_resource/${hdr}
1828.endfor
1829
1830INCSGROUPS+=	MUT
1831MUTDIR=		${CXXINCLUDEDIR}/__mutex
1832MUT_HEADERS+=	lock_guard.h
1833MUT_HEADERS+=	mutex.h
1834MUT_HEADERS+=	once_flag.h
1835MUT_HEADERS+=	tag_types.h
1836MUT_HEADERS+=	unique_lock.h
1837.for hdr in ${MUT_HEADERS}
1838MUT+=		${HDRDIR}/__mutex/${hdr}
1839.endfor
1840
1841INCSGROUPS+=	NEW
1842NEWDIR=		${CXXINCLUDEDIR}/__new
1843NEW_HEADERS+=	align_val_t.h
1844NEW_HEADERS+=	allocate.h
1845NEW_HEADERS+=	destroying_delete_t.h
1846NEW_HEADERS+=	exceptions.h
1847NEW_HEADERS+=	global_new_delete.h
1848NEW_HEADERS+=	interference_size.h
1849NEW_HEADERS+=	launder.h
1850NEW_HEADERS+=	new_handler.h
1851NEW_HEADERS+=	nothrow_t.h
1852NEW_HEADERS+=	placement_new_delete.h
1853.for hdr in ${NEW_HEADERS}
1854NEW+=		${HDRDIR}/__new/${hdr}
1855.endfor
1856
1857INCSGROUPS+=	NUM
1858NUMDIR=		${CXXINCLUDEDIR}/__numeric
1859NUM_HEADERS+=	accumulate.h
1860NUM_HEADERS+=	adjacent_difference.h
1861NUM_HEADERS+=	exclusive_scan.h
1862NUM_HEADERS+=	gcd_lcm.h
1863NUM_HEADERS+=	inclusive_scan.h
1864NUM_HEADERS+=	inner_product.h
1865NUM_HEADERS+=	iota.h
1866NUM_HEADERS+=	midpoint.h
1867NUM_HEADERS+=	partial_sum.h
1868NUM_HEADERS+=	pstl.h
1869NUM_HEADERS+=	ranges_iota.h
1870NUM_HEADERS+=	reduce.h
1871NUM_HEADERS+=	saturation_arithmetic.h
1872NUM_HEADERS+=	transform_exclusive_scan.h
1873NUM_HEADERS+=	transform_inclusive_scan.h
1874NUM_HEADERS+=	transform_reduce.h
1875.for hdr in ${NUM_HEADERS}
1876NUM+=		${HDRDIR}/__numeric/${hdr}
1877.endfor
1878
1879INCSGROUPS+=	OST
1880OSTDIR=		${CXXINCLUDEDIR}/__ostream
1881OST_HEADERS+=	basic_ostream.h
1882OST_HEADERS+=	print.h
1883OST_HEADERS+=	put_character_sequence.h
1884.for hdr in ${OST_HEADERS}
1885OST+=		${HDRDIR}/__ostream/${hdr}
1886.endfor
1887
1888INCSGROUPS+=	PST
1889PSTDIR=		${CXXINCLUDEDIR}/__pstl
1890PST_HEADERS+=	backend.h
1891PST_HEADERS+=	backend_fwd.h
1892PST_HEADERS+=	dispatch.h
1893PST_HEADERS+=	handle_exception.h
1894.for hdr in ${PST_HEADERS}
1895PST+=		${HDRDIR}/__pstl/${hdr}
1896.endfor
1897
1898INCSGROUPS+=	PSB
1899PSBDIR=		${CXXINCLUDEDIR}/__pstl/backends
1900PSB_HEADERS+=	default.h
1901PSB_HEADERS+=	libdispatch.h
1902PSB_HEADERS+=	serial.h
1903PSB_HEADERS+=	std_thread.h
1904.for hdr in ${PSB_HEADERS}
1905PSB+=		${HDRDIR}/__pstl/backends/${hdr}
1906.endfor
1907
1908INCSGROUPS+=	PSC
1909PSCDIR=		${CXXINCLUDEDIR}/__pstl/cpu_algos
1910PSC_HEADERS+=	any_of.h
1911PSC_HEADERS+=	cpu_traits.h
1912PSC_HEADERS+=	fill.h
1913PSC_HEADERS+=	find_if.h
1914PSC_HEADERS+=	for_each.h
1915PSC_HEADERS+=	merge.h
1916PSC_HEADERS+=	stable_sort.h
1917PSC_HEADERS+=	transform.h
1918PSC_HEADERS+=	transform_reduce.h
1919.for hdr in ${PSC_HEADERS}
1920PSC+=		${HDRDIR}/__pstl/cpu_algos/${hdr}
1921.endfor
1922
1923INCSGROUPS+=	RND
1924RNDDIR=		${CXXINCLUDEDIR}/__random
1925RND_HEADERS+=	bernoulli_distribution.h
1926RND_HEADERS+=	binomial_distribution.h
1927RND_HEADERS+=	cauchy_distribution.h
1928RND_HEADERS+=	chi_squared_distribution.h
1929RND_HEADERS+=	clamp_to_integral.h
1930RND_HEADERS+=	default_random_engine.h
1931RND_HEADERS+=	discard_block_engine.h
1932RND_HEADERS+=	discrete_distribution.h
1933RND_HEADERS+=	exponential_distribution.h
1934RND_HEADERS+=	extreme_value_distribution.h
1935RND_HEADERS+=	fisher_f_distribution.h
1936RND_HEADERS+=	gamma_distribution.h
1937RND_HEADERS+=	generate_canonical.h
1938RND_HEADERS+=	geometric_distribution.h
1939RND_HEADERS+=	independent_bits_engine.h
1940RND_HEADERS+=	is_seed_sequence.h
1941RND_HEADERS+=	is_valid.h
1942RND_HEADERS+=	knuth_b.h
1943RND_HEADERS+=	linear_congruential_engine.h
1944RND_HEADERS+=	log2.h
1945RND_HEADERS+=	lognormal_distribution.h
1946RND_HEADERS+=	mersenne_twister_engine.h
1947RND_HEADERS+=	negative_binomial_distribution.h
1948RND_HEADERS+=	normal_distribution.h
1949RND_HEADERS+=	piecewise_constant_distribution.h
1950RND_HEADERS+=	piecewise_linear_distribution.h
1951RND_HEADERS+=	poisson_distribution.h
1952RND_HEADERS+=	random_device.h
1953RND_HEADERS+=	ranlux.h
1954RND_HEADERS+=	seed_seq.h
1955RND_HEADERS+=	shuffle_order_engine.h
1956RND_HEADERS+=	student_t_distribution.h
1957RND_HEADERS+=	subtract_with_carry_engine.h
1958RND_HEADERS+=	uniform_int_distribution.h
1959RND_HEADERS+=	uniform_random_bit_generator.h
1960RND_HEADERS+=	uniform_real_distribution.h
1961RND_HEADERS+=	weibull_distribution.h
1962.for hdr in ${RND_HEADERS}
1963RND+=		${HDRDIR}/__random/${hdr}
1964.endfor
1965
1966INCSGROUPS+=	RNG
1967RNGDIR=		${CXXINCLUDEDIR}/__ranges
1968RNG_HEADERS+=	access.h
1969RNG_HEADERS+=	all.h
1970RNG_HEADERS+=	as_rvalue_view.h
1971RNG_HEADERS+=	chunk_by_view.h
1972RNG_HEADERS+=	common_view.h
1973RNG_HEADERS+=	concepts.h
1974RNG_HEADERS+=	container_compatible_range.h
1975RNG_HEADERS+=	counted.h
1976RNG_HEADERS+=	dangling.h
1977RNG_HEADERS+=	data.h
1978RNG_HEADERS+=	drop_view.h
1979RNG_HEADERS+=	drop_while_view.h
1980RNG_HEADERS+=	elements_view.h
1981RNG_HEADERS+=	empty.h
1982RNG_HEADERS+=	empty_view.h
1983RNG_HEADERS+=	enable_borrowed_range.h
1984RNG_HEADERS+=	enable_view.h
1985RNG_HEADERS+=	filter_view.h
1986RNG_HEADERS+=	from_range.h
1987RNG_HEADERS+=	iota_view.h
1988RNG_HEADERS+=	istream_view.h
1989RNG_HEADERS+=	join_view.h
1990RNG_HEADERS+=	join_with_view.h
1991RNG_HEADERS+=	lazy_split_view.h
1992RNG_HEADERS+=	movable_box.h
1993RNG_HEADERS+=	non_propagating_cache.h
1994RNG_HEADERS+=	owning_view.h
1995RNG_HEADERS+=	range_adaptor.h
1996RNG_HEADERS+=	rbegin.h
1997RNG_HEADERS+=	ref_view.h
1998RNG_HEADERS+=	rend.h
1999RNG_HEADERS+=	repeat_view.h
2000RNG_HEADERS+=	reverse_view.h
2001RNG_HEADERS+=	single_view.h
2002RNG_HEADERS+=	size.h
2003RNG_HEADERS+=	split_view.h
2004RNG_HEADERS+=	subrange.h
2005RNG_HEADERS+=	take_view.h
2006RNG_HEADERS+=	take_while_view.h
2007RNG_HEADERS+=	to.h
2008RNG_HEADERS+=	transform_view.h
2009RNG_HEADERS+=	view_interface.h
2010RNG_HEADERS+=	views.h
2011RNG_HEADERS+=	zip_view.h
2012.for hdr in ${RNG_HEADERS}
2013RNG+=		${HDRDIR}/__ranges/${hdr}
2014.endfor
2015
2016INCSGROUPS+=	STT
2017STTDIR=		${CXXINCLUDEDIR}/__stop_token
2018STT_HEADERS+=	atomic_unique_lock.h
2019STT_HEADERS+=	intrusive_list_view.h
2020STT_HEADERS+=	intrusive_shared_ptr.h
2021STT_HEADERS+=	stop_callback.h
2022STT_HEADERS+=	stop_source.h
2023STT_HEADERS+=	stop_state.h
2024STT_HEADERS+=	stop_token.h
2025.for hdr in ${STT_HEADERS}
2026STT+=		${HDRDIR}/__stop_token/${hdr}
2027.endfor
2028
2029INCSGROUPS+=	STR
2030STRDIR=		${CXXINCLUDEDIR}/__string
2031STR_HEADERS+=	char_traits.h
2032STR_HEADERS+=	constexpr_c_functions.h
2033STR_HEADERS+=	extern_template_lists.h
2034.for hdr in ${STR_HEADERS}
2035STR+=		${HDRDIR}/__string/${hdr}
2036.endfor
2037
2038INCSGROUPS+=	SER
2039SERDIR=		${CXXINCLUDEDIR}/__system_error
2040SER_HEADERS+=	errc.h
2041SER_HEADERS+=	error_category.h
2042SER_HEADERS+=	error_code.h
2043SER_HEADERS+=	error_condition.h
2044SER_HEADERS+=	system_error.h
2045SER_HEADERS+=	throw_system_error.h
2046.for hdr in ${SER_HEADERS}
2047SER+=		${HDRDIR}/__system_error/${hdr}
2048.endfor
2049
2050INCSGROUPS+=	THR
2051THRDIR=		${CXXINCLUDEDIR}/__thread
2052THR_HEADERS+=	formatter.h
2053THR_HEADERS+=	id.h
2054THR_HEADERS+=	jthread.h
2055THR_HEADERS+=	poll_with_backoff.h
2056THR_HEADERS+=	support.h
2057THR_HEADERS+=	this_thread.h
2058THR_HEADERS+=	thread.h
2059THR_HEADERS+=	timed_backoff_policy.h
2060.for hdr in ${THR_HEADERS}
2061THR+=		${HDRDIR}/__thread/${hdr}
2062.endfor
2063
2064INCSGROUPS+=	THS
2065THSDIR=		${CXXINCLUDEDIR}/__thread/support
2066THS_HEADERS+=	c11.h
2067THS_HEADERS+=	external.h
2068THS_HEADERS+=	pthread.h
2069THS_HEADERS+=	windows.h
2070.for hdr in ${THS_HEADERS}
2071THS+=		${HDRDIR}/__thread/support/${hdr}
2072.endfor
2073
2074INCSGROUPS+=	TUP
2075TUPDIR=		${CXXINCLUDEDIR}/__tuple
2076TUP_HEADERS+=	find_index.h
2077TUP_HEADERS+=	ignore.h
2078TUP_HEADERS+=	make_tuple_types.h
2079TUP_HEADERS+=	sfinae_helpers.h
2080TUP_HEADERS+=	tuple_element.h
2081TUP_HEADERS+=	tuple_indices.h
2082TUP_HEADERS+=	tuple_like.h
2083TUP_HEADERS+=	tuple_like_ext.h
2084TUP_HEADERS+=	tuple_like_no_subrange.h
2085TUP_HEADERS+=	tuple_size.h
2086TUP_HEADERS+=	tuple_types.h
2087.for hdr in ${TUP_HEADERS}
2088TUP+=		${HDRDIR}/__tuple/${hdr}
2089.endfor
2090
2091INCSGROUPS+=	TTR
2092TTRDIR=		${CXXINCLUDEDIR}/__type_traits
2093TTR_HEADERS+=	add_cv_quals.h
2094TTR_HEADERS+=	add_pointer.h
2095TTR_HEADERS+=	add_reference.h
2096TTR_HEADERS+=	aligned_storage.h
2097TTR_HEADERS+=	aligned_union.h
2098TTR_HEADERS+=	alignment_of.h
2099TTR_HEADERS+=	can_extract_key.h
2100TTR_HEADERS+=	common_reference.h
2101TTR_HEADERS+=	common_type.h
2102TTR_HEADERS+=	conditional.h
2103TTR_HEADERS+=	conjunction.h
2104TTR_HEADERS+=	container_traits.h
2105TTR_HEADERS+=	copy_cv.h
2106TTR_HEADERS+=	copy_cvref.h
2107TTR_HEADERS+=	datasizeof.h
2108TTR_HEADERS+=	decay.h
2109TTR_HEADERS+=	dependent_type.h
2110TTR_HEADERS+=	desugars_to.h
2111TTR_HEADERS+=	detected_or.h
2112TTR_HEADERS+=	disjunction.h
2113TTR_HEADERS+=	enable_if.h
2114TTR_HEADERS+=	extent.h
2115TTR_HEADERS+=	has_unique_object_representation.h
2116TTR_HEADERS+=	has_virtual_destructor.h
2117TTR_HEADERS+=	integer_traits.h
2118TTR_HEADERS+=	integral_constant.h
2119TTR_HEADERS+=	invoke.h
2120TTR_HEADERS+=	is_abstract.h
2121TTR_HEADERS+=	is_aggregate.h
2122TTR_HEADERS+=	is_allocator.h
2123TTR_HEADERS+=	is_always_bitcastable.h
2124TTR_HEADERS+=	is_arithmetic.h
2125TTR_HEADERS+=	is_array.h
2126TTR_HEADERS+=	is_assignable.h
2127TTR_HEADERS+=	is_base_of.h
2128TTR_HEADERS+=	is_bounded_array.h
2129TTR_HEADERS+=	is_callable.h
2130TTR_HEADERS+=	is_char_like_type.h
2131TTR_HEADERS+=	is_class.h
2132TTR_HEADERS+=	is_compound.h
2133TTR_HEADERS+=	is_const.h
2134TTR_HEADERS+=	is_constant_evaluated.h
2135TTR_HEADERS+=	is_constructible.h
2136TTR_HEADERS+=	is_convertible.h
2137TTR_HEADERS+=	is_core_convertible.h
2138TTR_HEADERS+=	is_destructible.h
2139TTR_HEADERS+=	is_empty.h
2140TTR_HEADERS+=	is_enum.h
2141TTR_HEADERS+=	is_equality_comparable.h
2142TTR_HEADERS+=	is_execution_policy.h
2143TTR_HEADERS+=	is_final.h
2144TTR_HEADERS+=	is_floating_point.h
2145TTR_HEADERS+=	is_function.h
2146TTR_HEADERS+=	is_fundamental.h
2147TTR_HEADERS+=	is_implicit_lifetime.h
2148TTR_HEADERS+=	is_implicitly_default_constructible.h
2149TTR_HEADERS+=	is_integral.h
2150TTR_HEADERS+=	is_literal_type.h
2151TTR_HEADERS+=	is_member_pointer.h
2152TTR_HEADERS+=	is_nothrow_assignable.h
2153TTR_HEADERS+=	is_nothrow_constructible.h
2154TTR_HEADERS+=	is_nothrow_destructible.h
2155TTR_HEADERS+=	is_null_pointer.h
2156TTR_HEADERS+=	is_object.h
2157TTR_HEADERS+=	is_pod.h
2158TTR_HEADERS+=	is_pointer.h
2159TTR_HEADERS+=	is_polymorphic.h
2160TTR_HEADERS+=	is_primary_template.h
2161TTR_HEADERS+=	is_reference.h
2162TTR_HEADERS+=	is_reference_wrapper.h
2163TTR_HEADERS+=	is_referenceable.h
2164TTR_HEADERS+=	is_replaceable.h
2165TTR_HEADERS+=	is_same.h
2166TTR_HEADERS+=	is_scalar.h
2167TTR_HEADERS+=	is_signed.h
2168TTR_HEADERS+=	is_specialization.h
2169TTR_HEADERS+=	is_standard_layout.h
2170TTR_HEADERS+=	is_swappable.h
2171TTR_HEADERS+=	is_trivial.h
2172TTR_HEADERS+=	is_trivially_assignable.h
2173TTR_HEADERS+=	is_trivially_constructible.h
2174TTR_HEADERS+=	is_trivially_copyable.h
2175TTR_HEADERS+=	is_trivially_destructible.h
2176TTR_HEADERS+=	is_trivially_lexicographically_comparable.h
2177TTR_HEADERS+=	is_trivially_relocatable.h
2178TTR_HEADERS+=	is_unbounded_array.h
2179TTR_HEADERS+=	is_union.h
2180TTR_HEADERS+=	is_unsigned.h
2181TTR_HEADERS+=	is_valid_expansion.h
2182TTR_HEADERS+=	is_void.h
2183TTR_HEADERS+=	is_volatile.h
2184TTR_HEADERS+=	lazy.h
2185TTR_HEADERS+=	make_32_64_or_128_bit.h
2186TTR_HEADERS+=	make_const_lvalue_ref.h
2187TTR_HEADERS+=	make_signed.h
2188TTR_HEADERS+=	make_unsigned.h
2189TTR_HEADERS+=	maybe_const.h
2190TTR_HEADERS+=	nat.h
2191TTR_HEADERS+=	negation.h
2192TTR_HEADERS+=	promote.h
2193TTR_HEADERS+=	rank.h
2194TTR_HEADERS+=	reference_constructs_from_temporary.h
2195TTR_HEADERS+=	reference_converts_from_temporary.h
2196TTR_HEADERS+=	remove_all_extents.h
2197TTR_HEADERS+=	remove_const.h
2198TTR_HEADERS+=	remove_const_ref.h
2199TTR_HEADERS+=	remove_cv.h
2200TTR_HEADERS+=	remove_cvref.h
2201TTR_HEADERS+=	remove_extent.h
2202TTR_HEADERS+=	remove_pointer.h
2203TTR_HEADERS+=	remove_reference.h
2204TTR_HEADERS+=	remove_volatile.h
2205TTR_HEADERS+=	result_of.h
2206TTR_HEADERS+=	strip_signature.h
2207TTR_HEADERS+=	type_identity.h
2208TTR_HEADERS+=	type_list.h
2209TTR_HEADERS+=	underlying_type.h
2210TTR_HEADERS+=	unwrap_ref.h
2211TTR_HEADERS+=	void_t.h
2212.for hdr in ${TTR_HEADERS}
2213TTR+=		${HDRDIR}/__type_traits/${hdr}
2214.endfor
2215
2216INCSGROUPS+=	UTL
2217UTLDIR=		${CXXINCLUDEDIR}/__utility
2218UTL_HEADERS+=	as_const.h
2219UTL_HEADERS+=	as_lvalue.h
2220UTL_HEADERS+=	auto_cast.h
2221UTL_HEADERS+=	cmp.h
2222UTL_HEADERS+=	convert_to_integral.h
2223UTL_HEADERS+=	declval.h
2224UTL_HEADERS+=	element_count.h
2225UTL_HEADERS+=	empty.h
2226UTL_HEADERS+=	exception_guard.h
2227UTL_HEADERS+=	exchange.h
2228UTL_HEADERS+=	forward.h
2229UTL_HEADERS+=	forward_like.h
2230UTL_HEADERS+=	in_place.h
2231UTL_HEADERS+=	integer_sequence.h
2232UTL_HEADERS+=	is_pointer_in_range.h
2233UTL_HEADERS+=	is_valid_range.h
2234UTL_HEADERS+=	move.h
2235UTL_HEADERS+=	no_destroy.h
2236UTL_HEADERS+=	pair.h
2237UTL_HEADERS+=	piecewise_construct.h
2238UTL_HEADERS+=	priority_tag.h
2239UTL_HEADERS+=	private_constructor_tag.h
2240UTL_HEADERS+=	rel_ops.h
2241UTL_HEADERS+=	scope_guard.h
2242UTL_HEADERS+=	small_buffer.h
2243UTL_HEADERS+=	swap.h
2244UTL_HEADERS+=	to_underlying.h
2245UTL_HEADERS+=	unreachable.h
2246.for hdr in ${UTL_HEADERS}
2247UTL+=		${HDRDIR}/__utility/${hdr}
2248.endfor
2249
2250INCSGROUPS+=	VAR
2251VARDIR=	${CXXINCLUDEDIR}/__variant
2252VAR_HEADERS+=	monostate.h
2253.for hdr in ${VAR_HEADERS}
2254VAR+=		${HDRDIR}/__variant/${hdr}
2255.endfor
2256
2257INCSGROUPS+=	VEC
2258VECDIR=		${CXXINCLUDEDIR}/__vector
2259VEC_HEADERS+=	comparison.h
2260VEC_HEADERS+=	container_traits.h
2261VEC_HEADERS+=	erase.h
2262VEC_HEADERS+=	pmr.h
2263VEC_HEADERS+=	swap.h
2264VEC_HEADERS+=	vector.h
2265VEC_HEADERS+=	vector_bool.h
2266VEC_HEADERS+=	vector_bool_formatter.h
2267.for hdr in ${VEC_HEADERS}
2268VEC+=		${HDRDIR}/__vector/${hdr}
2269.endfor
2270
2271INCSGROUPS+=	EXP
2272EXPDIR=		${CXXINCLUDEDIR}/experimental
2273EXP_HEADERS+=	iterator
2274EXP_HEADERS+=	memory
2275EXP_HEADERS+=	propagate_const
2276EXP_HEADERS+=	simd
2277EXP_HEADERS+=	type_traits
2278EXP_HEADERS+=	utility
2279.for hdr in ${EXP_HEADERS}
2280EXP+=		${HDRDIR}/experimental/${hdr}
2281.endfor
2282
2283INCSGROUPS+=	EXS
2284EXSDIR=		${CXXINCLUDEDIR}/experimental/__simd
2285EXS_HEADERS+=	aligned_tag.h
2286EXS_HEADERS+=	declaration.h
2287EXS_HEADERS+=	reference.h
2288EXS_HEADERS+=	scalar.h
2289EXS_HEADERS+=	simd.h
2290EXS_HEADERS+=	simd_mask.h
2291EXS_HEADERS+=	traits.h
2292EXS_HEADERS+=	utility.h
2293EXS_HEADERS+=	vec_ext.h
2294.for hdr in ${EXS_HEADERS}
2295EXS+=		${HDRDIR}/experimental/__simd/${hdr}
2296.endfor
2297
2298INCSGROUPS+=	EXT
2299EXTDIR=		${CXXINCLUDEDIR}/ext
2300EXT_HEADERS+=	__hash
2301EXT_HEADERS+=	hash_map
2302EXT_HEADERS+=	hash_set
2303.for hdr in ${EXT_HEADERS}
2304EXT+=		${HDRDIR}/ext/${hdr}
2305.endfor
2306
2307.include <bsd.lib.mk>
2308