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