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