xref: /freebsd/lib/libc++/Makefile (revision bc9e19dce0abee80750e6fa04aaf979873bfe0d2)
15e6a2d6eSDimitry AndricSHLIBDIR?=	/lib
25e6a2d6eSDimitry Andric
3aa7703beSBaptiste Daroussin.include <src.opts.mk>
4aa7703beSBaptiste Daroussin
5c389411cSGlen BarberPACKAGE=	clibs
63f910b91SDimitry Andric_LIBCXXRTDIR=	${SRCTOP}/contrib/libcxxrt
70b57cec5SDimitry AndricHDRDIR=		${SRCTOP}/contrib/llvm-project/libcxx/include
80b57cec5SDimitry AndricSRCDIR=		${SRCTOP}/contrib/llvm-project/libcxx/src
97a984708SDavid ChisnallCXXINCLUDEDIR=	${INCLUDEDIR}/c++/v${SHLIB_MAJOR}
107a984708SDavid Chisnall
117a984708SDavid Chisnall.PATH: ${SRCDIR}
127a984708SDavid Chisnall
137a984708SDavid ChisnallLIB=		c++
147a984708SDavid ChisnallSHLIB_MAJOR=	1
15e669ff37SDimitry AndricSHLIB_LDSCRIPT=	libc++.ldscript
167a984708SDavid Chisnall
173f910b91SDimitry AndricSRCS+=		algorithm.cpp
183f910b91SDimitry AndricSRCS+=		any.cpp
19c37f312dSDimitry AndricSRCS+=		atomic.cpp
20c37f312dSDimitry AndricSRCS+=		barrier.cpp
213f910b91SDimitry AndricSRCS+=		bind.cpp
225f757f3fSDimitry AndricSRCS+=		call_once.cpp
23488aa40aSDimitry AndricSRCS+=		charconv.cpp
243f910b91SDimitry AndricSRCS+=		chrono.cpp
253f910b91SDimitry AndricSRCS+=		condition_variable.cpp
26b0d4288fSDimitry AndricSRCS+=		condition_variable_destructor.cpp
275f757f3fSDimitry AndricSRCS+=		error_category.cpp
283f910b91SDimitry AndricSRCS+=		exception.cpp
290fca6ea1SDimitry AndricSRCS+=		expected.cpp
3006c3fb27SDimitry AndricSRCS+=		filesystem/directory_entry.cpp
31b0d4288fSDimitry AndricSRCS+=		filesystem/directory_iterator.cpp
3206c3fb27SDimitry AndricSRCS+=		filesystem/filesystem_clock.cpp
3306c3fb27SDimitry AndricSRCS+=		filesystem/filesystem_error.cpp
34b0d4288fSDimitry AndricSRCS+=		filesystem/int128_builtins.cpp
35b0d4288fSDimitry AndricSRCS+=		filesystem/operations.cpp
3606c3fb27SDimitry AndricSRCS+=		filesystem/path.cpp
370fca6ea1SDimitry AndricSRCS+=		fstream.cpp
38540d2a8bSDimitry AndricSRCS+=		functional.cpp
393f910b91SDimitry AndricSRCS+=		future.cpp
403f910b91SDimitry AndricSRCS+=		hash.cpp
413f910b91SDimitry AndricSRCS+=		ios.cpp
42d409305fSDimitry AndricSRCS+=		ios.instantiations.cpp
433f910b91SDimitry AndricSRCS+=		iostream.cpp
445e801ac6SDimitry AndricSRCS+=		legacy_pointer_safety.cpp
453f910b91SDimitry AndricSRCS+=		locale.cpp
463f910b91SDimitry AndricSRCS+=		memory.cpp
47bdd1243dSDimitry AndricSRCS+=		memory_resource.cpp
483f910b91SDimitry AndricSRCS+=		mutex.cpp
49b0d4288fSDimitry AndricSRCS+=		mutex_destructor.cpp
503f910b91SDimitry AndricSRCS+=		new.cpp
5106c3fb27SDimitry AndricSRCS+=		new_handler.cpp
5206c3fb27SDimitry AndricSRCS+=		new_helpers.cpp
533f910b91SDimitry AndricSRCS+=		optional.cpp
54cb14a3feSDimitry AndricSRCS+=		ostream.cpp
5506c3fb27SDimitry AndricSRCS+=		print.cpp
563f910b91SDimitry AndricSRCS+=		random.cpp
57c37f312dSDimitry AndricSRCS+=		random_shuffle.cpp
583f910b91SDimitry AndricSRCS+=		regex.cpp
5904eeddc0SDimitry AndricSRCS+=		ryu/d2fixed.cpp
6004eeddc0SDimitry AndricSRCS+=		ryu/d2s.cpp
6104eeddc0SDimitry AndricSRCS+=		ryu/f2s.cpp
623f910b91SDimitry AndricSRCS+=		shared_mutex.cpp
633f910b91SDimitry AndricSRCS+=		stdexcept.cpp
643f910b91SDimitry AndricSRCS+=		string.cpp
653f910b91SDimitry AndricSRCS+=		strstream.cpp
663f910b91SDimitry AndricSRCS+=		system_error.cpp
673f910b91SDimitry AndricSRCS+=		thread.cpp
683f910b91SDimitry AndricSRCS+=		typeinfo.cpp
693f910b91SDimitry AndricSRCS+=		valarray.cpp
705d77776cSDimitry AndricSRCS+=		variant.cpp
7124d58133SDimitry AndricSRCS+=		vector.cpp
7261cfbce3SDimitry AndricSRCS+=		verbose_abort.cpp
737a984708SDavid Chisnall
743f910b91SDimitry AndricCXXRT_SRCS+=	auxhelper.cc
753f910b91SDimitry AndricCXXRT_SRCS+=	dynamic_cast.cc
763f910b91SDimitry AndricCXXRT_SRCS+=	exception.cc
773f910b91SDimitry AndricCXXRT_SRCS+=	guard.cc
783f910b91SDimitry AndricCXXRT_SRCS+=	libelftc_dem_gnu3.c
793f910b91SDimitry AndricCXXRT_SRCS+=	memory.cc
803f910b91SDimitry AndricCXXRT_SRCS+=	stdexcept.cc
813f910b91SDimitry AndricCXXRT_SRCS+=	terminate.cc
823f910b91SDimitry AndricCXXRT_SRCS+=	typeinfo.cc
8315e154dfSDimitry Andric
8415e154dfSDimitry Andric.for _S in ${CXXRT_SRCS}
857533aa15SBryan DreweryCLEANFILES+=	cxxrt_${_S}
8615e154dfSDimitry AndricSTATICOBJS+=	cxxrt_${_S:R}.o
873c89d6b0SBryan Drewerycxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
88b791fbe6SBryan Drewery	ln -sf ${.ALLSRC} ${.TARGET}
8915e154dfSDimitry Andric.endfor
9015e154dfSDimitry Andric
91ecebb3ccSKyle EvansWARNS?=		0
927a6dacacSDimitry AndricCFLAGS+=	-isystem ${SRCDIR}
936e75b2fbSDimitry AndricCFLAGS+=	-isystem ${.CURDIR}
94302affcbSDimitry AndricCFLAGS+=	-isystem ${HDRDIR}
95302affcbSDimitry AndricCFLAGS+=	-isystem ${_LIBCXXRTDIR}
96302affcbSDimitry AndricCFLAGS+=	-nostdinc++
97302affcbSDimitry AndricCFLAGS+=	-nostdlib
98302affcbSDimitry AndricCFLAGS+=	-D_LIBCPP_BUILDING_LIBRARY
997a6dacacSDimitry AndricCFLAGS+=	-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER
1007a6dacacSDimitry AndricCFLAGS+=	-D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES
101302affcbSDimitry AndricCFLAGS+=	-DLIBCXXRT
10297e6bc16SDimitry AndricCFLAGS+=	-fdata-sections
1037a6dacacSDimitry AndricCFLAGS+=	-ffunction-sections
1047a6dacacSDimitry AndricCFLAGS+=	-fno-semantic-interposition
1057a6dacacSDimitry AndricCFLAGS+=	-fvisibility-inlines-hidden
1067a6dacacSDimitry AndricCFLAGS+=	-fvisibility=hidden
107*bc9e19dcSDimitry Andric
108*bc9e19dcSDimitry Andric.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} < 130000
109*bc9e19dcSDimitry Andric# NOTE: gcc 12 cannot correctly compile all libc++'s C++23 code. To temporarily
110*bc9e19dcSDimitry Andric# support gcc 12, compile libc++ in C++20 mode, but this will leave out any
111*bc9e19dcSDimitry Andric# C++23 features.
112*bc9e19dcSDimitry AndricCXXSTD?=	c++20
113*bc9e19dcSDimitry Andric.else
1140fca6ea1SDimitry AndricCXXSTD?=	c++23
115*bc9e19dcSDimitry Andric.endif
1167a984708SDavid Chisnall
1176b129086SBaptiste DaroussinLIBADD+=	cxxrt
1187a984708SDavid Chisnall
1196e75b2fbSDimitry AndricINCSGROUPS+=	STD
1206e75b2fbSDimitry AndricSTDDIR=		${CXXINCLUDEDIR}
12181ad6265SDimitry AndricSTD_HEADERS+=	__assert
1223f910b91SDimitry AndricSTD_HEADERS+=	__bit_reference
1236e75b2fbSDimitry AndricSTD_HEADERS+=	__config
1243f910b91SDimitry AndricSTD_HEADERS+=	__hash_table
1253f910b91SDimitry AndricSTD_HEADERS+=	__locale
1265e801ac6SDimitry AndricSTD_HEADERS+=	__mbstate_t.h
127488aa40aSDimitry AndricSTD_HEADERS+=	__node_handle
1283f910b91SDimitry AndricSTD_HEADERS+=	__split_buffer
1295f757f3fSDimitry AndricSTD_HEADERS+=	__std_clang_module
13006c3fb27SDimitry AndricSTD_HEADERS+=	__std_mbstate_t.h
1313f910b91SDimitry AndricSTD_HEADERS+=	__tree
132f9448bf3SDimitry AndricSTD_HEADERS+=	__undef_macros
13361cfbce3SDimitry AndricSTD_HEADERS+=	__verbose_abort
1343f910b91SDimitry AndricSTD_HEADERS+=	algorithm
1353f910b91SDimitry AndricSTD_HEADERS+=	any
1363f910b91SDimitry AndricSTD_HEADERS+=	array
1373f910b91SDimitry AndricSTD_HEADERS+=	atomic
13895aa617eSDimitry AndricSTD_HEADERS+=	barrier
13958a7b5d6SDimitry AndricSTD_HEADERS+=	bit
1403f910b91SDimitry AndricSTD_HEADERS+=	bitset
1413f910b91SDimitry AndricSTD_HEADERS+=	cassert
1423f910b91SDimitry AndricSTD_HEADERS+=	ccomplex
1433f910b91SDimitry AndricSTD_HEADERS+=	cctype
1443f910b91SDimitry AndricSTD_HEADERS+=	cerrno
1453f910b91SDimitry AndricSTD_HEADERS+=	cfenv
1463f910b91SDimitry AndricSTD_HEADERS+=	cfloat
147488aa40aSDimitry AndricSTD_HEADERS+=	charconv
1483f910b91SDimitry AndricSTD_HEADERS+=	chrono
1493f910b91SDimitry AndricSTD_HEADERS+=	cinttypes
1503f910b91SDimitry AndricSTD_HEADERS+=	ciso646
1513f910b91SDimitry AndricSTD_HEADERS+=	climits
1523f910b91SDimitry AndricSTD_HEADERS+=	clocale
1533f910b91SDimitry AndricSTD_HEADERS+=	cmath
1543f910b91SDimitry AndricSTD_HEADERS+=	codecvt
155488aa40aSDimitry AndricSTD_HEADERS+=	compare
1563f910b91SDimitry AndricSTD_HEADERS+=	complex
1573f910b91SDimitry AndricSTD_HEADERS+=	complex.h
15895aa617eSDimitry AndricSTD_HEADERS+=	concepts
1593f910b91SDimitry AndricSTD_HEADERS+=	condition_variable
1605e801ac6SDimitry AndricSTD_HEADERS+=	coroutine
1613f910b91SDimitry AndricSTD_HEADERS+=	csetjmp
1623f910b91SDimitry AndricSTD_HEADERS+=	csignal
1633f910b91SDimitry AndricSTD_HEADERS+=	cstdarg
1643f910b91SDimitry AndricSTD_HEADERS+=	cstdbool
1653f910b91SDimitry AndricSTD_HEADERS+=	cstddef
1663f910b91SDimitry AndricSTD_HEADERS+=	cstdint
1673f910b91SDimitry AndricSTD_HEADERS+=	cstdio
1683f910b91SDimitry AndricSTD_HEADERS+=	cstdlib
1693f910b91SDimitry AndricSTD_HEADERS+=	cstring
1703f910b91SDimitry AndricSTD_HEADERS+=	ctgmath
1713f910b91SDimitry AndricSTD_HEADERS+=	ctime
1723f910b91SDimitry AndricSTD_HEADERS+=	ctype.h
17381ad6265SDimitry AndricSTD_HEADERS+=	cuchar
1743f910b91SDimitry AndricSTD_HEADERS+=	cwchar
1753f910b91SDimitry AndricSTD_HEADERS+=	cwctype
1763f910b91SDimitry AndricSTD_HEADERS+=	deque
1773f910b91SDimitry AndricSTD_HEADERS+=	errno.h
1783f910b91SDimitry AndricSTD_HEADERS+=	exception
17995aa617eSDimitry AndricSTD_HEADERS+=	execution
180bdd1243dSDimitry AndricSTD_HEADERS+=	expected
181b0d4288fSDimitry AndricSTD_HEADERS+=	fenv.h
182488aa40aSDimitry AndricSTD_HEADERS+=	filesystem
1833f910b91SDimitry AndricSTD_HEADERS+=	float.h
1846e75b2fbSDimitry AndricSTD_HEADERS+=	format
1853f910b91SDimitry AndricSTD_HEADERS+=	forward_list
1863f910b91SDimitry AndricSTD_HEADERS+=	fstream
1873f910b91SDimitry AndricSTD_HEADERS+=	functional
1883f910b91SDimitry AndricSTD_HEADERS+=	future
1893f910b91SDimitry AndricSTD_HEADERS+=	initializer_list
1903f910b91SDimitry AndricSTD_HEADERS+=	inttypes.h
1913f910b91SDimitry AndricSTD_HEADERS+=	iomanip
1923f910b91SDimitry AndricSTD_HEADERS+=	ios
1933f910b91SDimitry AndricSTD_HEADERS+=	iosfwd
1943f910b91SDimitry AndricSTD_HEADERS+=	iostream
1953f910b91SDimitry AndricSTD_HEADERS+=	istream
1963f910b91SDimitry AndricSTD_HEADERS+=	iterator
19795aa617eSDimitry AndricSTD_HEADERS+=	latch
1983f910b91SDimitry AndricSTD_HEADERS+=	limits
1993f910b91SDimitry AndricSTD_HEADERS+=	list
2003f910b91SDimitry AndricSTD_HEADERS+=	locale
2013f910b91SDimitry AndricSTD_HEADERS+=	locale.h
2023f910b91SDimitry AndricSTD_HEADERS+=	map
2033f910b91SDimitry AndricSTD_HEADERS+=	math.h
20406c3fb27SDimitry AndricSTD_HEADERS+=	mdspan
2053f910b91SDimitry AndricSTD_HEADERS+=	memory
206bdd1243dSDimitry AndricSTD_HEADERS+=	memory_resource
20736b606aeSDimitry AndricSTD_HEADERS+=	module.modulemap
2083f910b91SDimitry AndricSTD_HEADERS+=	mutex
2093f910b91SDimitry AndricSTD_HEADERS+=	new
21095aa617eSDimitry AndricSTD_HEADERS+=	numbers
2113f910b91SDimitry AndricSTD_HEADERS+=	numeric
2123f910b91SDimitry AndricSTD_HEADERS+=	optional
2133f910b91SDimitry AndricSTD_HEADERS+=	ostream
21406c3fb27SDimitry AndricSTD_HEADERS+=	print
2153f910b91SDimitry AndricSTD_HEADERS+=	queue
2163f910b91SDimitry AndricSTD_HEADERS+=	random
2176e75b2fbSDimitry AndricSTD_HEADERS+=	ranges
2183f910b91SDimitry AndricSTD_HEADERS+=	ratio
2193f910b91SDimitry AndricSTD_HEADERS+=	regex
2203f910b91SDimitry AndricSTD_HEADERS+=	scoped_allocator
22195aa617eSDimitry AndricSTD_HEADERS+=	semaphore
2223f910b91SDimitry AndricSTD_HEADERS+=	set
2233f910b91SDimitry AndricSTD_HEADERS+=	shared_mutex
224bdd1243dSDimitry AndricSTD_HEADERS+=	source_location
225488aa40aSDimitry AndricSTD_HEADERS+=	span
2263f910b91SDimitry AndricSTD_HEADERS+=	sstream
2273f910b91SDimitry AndricSTD_HEADERS+=	stack
22881ad6265SDimitry AndricSTD_HEADERS+=	stdatomic.h
2293f910b91SDimitry AndricSTD_HEADERS+=	stdbool.h
2303f910b91SDimitry AndricSTD_HEADERS+=	stddef.h
2313f910b91SDimitry AndricSTD_HEADERS+=	stdexcept
2323f910b91SDimitry AndricSTD_HEADERS+=	stdint.h
2333f910b91SDimitry AndricSTD_HEADERS+=	stdio.h
2343f910b91SDimitry AndricSTD_HEADERS+=	stdlib.h
23506c3fb27SDimitry AndricSTD_HEADERS+=	stop_token
2363f910b91SDimitry AndricSTD_HEADERS+=	streambuf
2373f910b91SDimitry AndricSTD_HEADERS+=	string
2383f910b91SDimitry AndricSTD_HEADERS+=	string.h
2393f910b91SDimitry AndricSTD_HEADERS+=	string_view
2403f910b91SDimitry AndricSTD_HEADERS+=	strstream
2415f757f3fSDimitry AndricSTD_HEADERS+=	syncstream
2423f910b91SDimitry AndricSTD_HEADERS+=	system_error
2433f910b91SDimitry AndricSTD_HEADERS+=	tgmath.h
2443f910b91SDimitry AndricSTD_HEADERS+=	thread
2453f910b91SDimitry AndricSTD_HEADERS+=	tuple
2463f910b91SDimitry AndricSTD_HEADERS+=	type_traits
2473f910b91SDimitry AndricSTD_HEADERS+=	typeindex
2483f910b91SDimitry AndricSTD_HEADERS+=	typeinfo
24981ad6265SDimitry AndricSTD_HEADERS+=	uchar.h
2503f910b91SDimitry AndricSTD_HEADERS+=	unordered_map
2513f910b91SDimitry AndricSTD_HEADERS+=	unordered_set
2523f910b91SDimitry AndricSTD_HEADERS+=	utility
2533f910b91SDimitry AndricSTD_HEADERS+=	valarray
2543f910b91SDimitry AndricSTD_HEADERS+=	variant
2553f910b91SDimitry AndricSTD_HEADERS+=	vector
256488aa40aSDimitry AndricSTD_HEADERS+=	version
2573f910b91SDimitry AndricSTD_HEADERS+=	wchar.h
2583f910b91SDimitry AndricSTD_HEADERS+=	wctype.h
2596e75b2fbSDimitry Andric.for hdr in ${STD_HEADERS}
2606e75b2fbSDimitry AndricSTD+=		${HDRDIR}/${hdr}
2616e75b2fbSDimitry Andric.endfor
2626e75b2fbSDimitry Andric
2630fca6ea1SDimitry Andric# Generated by CMake as of libc++ 18.
2647a6dacacSDimitry AndricSTD+=		${.CURDIR}/__assertion_handler
2657a6dacacSDimitry Andric
2660fca6ea1SDimitry Andric# Generated by CMake as of libc++ 13.
2676e75b2fbSDimitry AndricSTD+=		${.CURDIR}/__config_site
2683f910b91SDimitry Andric
2690fca6ea1SDimitry Andric# Generated by CMake as of libc++ 19.
2700fca6ea1SDimitry AndricSTD_HEADERS+=	${.CURDIR}/libcxx.imp
2710fca6ea1SDimitry Andric
2723f910b91SDimitry AndricRT_HEADERS+=	cxxabi.h
273cd38c408SDimitry Andric.for hdr in ${RT_HEADERS}
2743c89d6b0SBryan DrewerySTD+=		${_LIBCXXRTDIR}/${hdr}
275cd38c408SDimitry Andric.endfor
2767a984708SDavid Chisnall
2776e75b2fbSDimitry AndricINCSGROUPS+=	ALG
2786e75b2fbSDimitry AndricALGDIR=		${CXXINCLUDEDIR}/__algorithm
2796e75b2fbSDimitry AndricALG_HEADERS+=	adjacent_find.h
2806e75b2fbSDimitry AndricALG_HEADERS+=	all_of.h
2816e75b2fbSDimitry AndricALG_HEADERS+=	any_of.h
2826e75b2fbSDimitry AndricALG_HEADERS+=	binary_search.h
2836e75b2fbSDimitry AndricALG_HEADERS+=	clamp.h
2846e75b2fbSDimitry AndricALG_HEADERS+=	comp.h
2856e75b2fbSDimitry AndricALG_HEADERS+=	comp_ref_type.h
2866e75b2fbSDimitry AndricALG_HEADERS+=	copy.h
2876e75b2fbSDimitry AndricALG_HEADERS+=	copy_backward.h
2886e75b2fbSDimitry AndricALG_HEADERS+=	copy_if.h
289bdd1243dSDimitry AndricALG_HEADERS+=	copy_move_common.h
2906e75b2fbSDimitry AndricALG_HEADERS+=	copy_n.h
2916e75b2fbSDimitry AndricALG_HEADERS+=	count.h
2926e75b2fbSDimitry AndricALG_HEADERS+=	count_if.h
2936e75b2fbSDimitry AndricALG_HEADERS+=	equal.h
2946e75b2fbSDimitry AndricALG_HEADERS+=	equal_range.h
2956e75b2fbSDimitry AndricALG_HEADERS+=	fill.h
2966e75b2fbSDimitry AndricALG_HEADERS+=	fill_n.h
2976e75b2fbSDimitry AndricALG_HEADERS+=	find.h
2986e75b2fbSDimitry AndricALG_HEADERS+=	find_end.h
2996e75b2fbSDimitry AndricALG_HEADERS+=	find_first_of.h
3006e75b2fbSDimitry AndricALG_HEADERS+=	find_if.h
3016e75b2fbSDimitry AndricALG_HEADERS+=	find_if_not.h
3025f757f3fSDimitry AndricALG_HEADERS+=	find_segment_if.h
303cb14a3feSDimitry AndricALG_HEADERS+=	fold.h
3046e75b2fbSDimitry AndricALG_HEADERS+=	for_each.h
3056e75b2fbSDimitry AndricALG_HEADERS+=	for_each_n.h
30606c3fb27SDimitry AndricALG_HEADERS+=	for_each_segment.h
3076e75b2fbSDimitry AndricALG_HEADERS+=	generate.h
3086e75b2fbSDimitry AndricALG_HEADERS+=	generate_n.h
3096e75b2fbSDimitry AndricALG_HEADERS+=	half_positive.h
31081ad6265SDimitry AndricALG_HEADERS+=	in_found_result.h
31181ad6265SDimitry AndricALG_HEADERS+=	in_fun_result.h
3121fd87a68SDimitry AndricALG_HEADERS+=	in_in_out_result.h
31304eeddc0SDimitry AndricALG_HEADERS+=	in_in_result.h
31481ad6265SDimitry AndricALG_HEADERS+=	in_out_out_result.h
31504eeddc0SDimitry AndricALG_HEADERS+=	in_out_result.h
3166e75b2fbSDimitry AndricALG_HEADERS+=	includes.h
3176e75b2fbSDimitry AndricALG_HEADERS+=	inplace_merge.h
3186e75b2fbSDimitry AndricALG_HEADERS+=	is_heap.h
3196e75b2fbSDimitry AndricALG_HEADERS+=	is_heap_until.h
3206e75b2fbSDimitry AndricALG_HEADERS+=	is_partitioned.h
3216e75b2fbSDimitry AndricALG_HEADERS+=	is_permutation.h
3226e75b2fbSDimitry AndricALG_HEADERS+=	is_sorted.h
3236e75b2fbSDimitry AndricALG_HEADERS+=	is_sorted_until.h
3246e75b2fbSDimitry AndricALG_HEADERS+=	iter_swap.h
32581ad6265SDimitry AndricALG_HEADERS+=	iterator_operations.h
3266e75b2fbSDimitry AndricALG_HEADERS+=	lexicographical_compare.h
32706c3fb27SDimitry AndricALG_HEADERS+=	lexicographical_compare_three_way.h
3286e75b2fbSDimitry AndricALG_HEADERS+=	lower_bound.h
3296e75b2fbSDimitry AndricALG_HEADERS+=	make_heap.h
33081ad6265SDimitry AndricALG_HEADERS+=	make_projected.h
3316e75b2fbSDimitry AndricALG_HEADERS+=	max.h
3326e75b2fbSDimitry AndricALG_HEADERS+=	max_element.h
3336e75b2fbSDimitry AndricALG_HEADERS+=	merge.h
3346e75b2fbSDimitry AndricALG_HEADERS+=	min.h
3356e75b2fbSDimitry AndricALG_HEADERS+=	min_element.h
33681ad6265SDimitry AndricALG_HEADERS+=	min_max_result.h
3376e75b2fbSDimitry AndricALG_HEADERS+=	minmax.h
3386e75b2fbSDimitry AndricALG_HEADERS+=	minmax_element.h
3396e75b2fbSDimitry AndricALG_HEADERS+=	mismatch.h
3406e75b2fbSDimitry AndricALG_HEADERS+=	move.h
3416e75b2fbSDimitry AndricALG_HEADERS+=	move_backward.h
3426e75b2fbSDimitry AndricALG_HEADERS+=	next_permutation.h
3436e75b2fbSDimitry AndricALG_HEADERS+=	none_of.h
3446e75b2fbSDimitry AndricALG_HEADERS+=	nth_element.h
3456e75b2fbSDimitry AndricALG_HEADERS+=	partial_sort.h
3466e75b2fbSDimitry AndricALG_HEADERS+=	partial_sort_copy.h
3476e75b2fbSDimitry AndricALG_HEADERS+=	partition.h
3486e75b2fbSDimitry AndricALG_HEADERS+=	partition_copy.h
3496e75b2fbSDimitry AndricALG_HEADERS+=	partition_point.h
3506e75b2fbSDimitry AndricALG_HEADERS+=	pop_heap.h
3516e75b2fbSDimitry AndricALG_HEADERS+=	prev_permutation.h
3520fca6ea1SDimitry AndricALG_HEADERS+=	pstl.h
3536e75b2fbSDimitry AndricALG_HEADERS+=	push_heap.h
35481ad6265SDimitry AndricALG_HEADERS+=	ranges_adjacent_find.h
35581ad6265SDimitry AndricALG_HEADERS+=	ranges_all_of.h
35681ad6265SDimitry AndricALG_HEADERS+=	ranges_any_of.h
35781ad6265SDimitry AndricALG_HEADERS+=	ranges_binary_search.h
35861cfbce3SDimitry AndricALG_HEADERS+=	ranges_clamp.h
359cb14a3feSDimitry AndricALG_HEADERS+=	ranges_contains.h
3600fca6ea1SDimitry AndricALG_HEADERS+=	ranges_contains_subrange.h
36181ad6265SDimitry AndricALG_HEADERS+=	ranges_copy.h
36281ad6265SDimitry AndricALG_HEADERS+=	ranges_copy_backward.h
36381ad6265SDimitry AndricALG_HEADERS+=	ranges_copy_if.h
36481ad6265SDimitry AndricALG_HEADERS+=	ranges_copy_n.h
36581ad6265SDimitry AndricALG_HEADERS+=	ranges_count.h
36681ad6265SDimitry AndricALG_HEADERS+=	ranges_count_if.h
3675f757f3fSDimitry AndricALG_HEADERS+=	ranges_ends_with.h
36881ad6265SDimitry AndricALG_HEADERS+=	ranges_equal.h
369753f127fSDimitry AndricALG_HEADERS+=	ranges_equal_range.h
37081ad6265SDimitry AndricALG_HEADERS+=	ranges_fill.h
37181ad6265SDimitry AndricALG_HEADERS+=	ranges_fill_n.h
37281ad6265SDimitry AndricALG_HEADERS+=	ranges_find.h
373753f127fSDimitry AndricALG_HEADERS+=	ranges_find_end.h
37481ad6265SDimitry AndricALG_HEADERS+=	ranges_find_first_of.h
37581ad6265SDimitry AndricALG_HEADERS+=	ranges_find_if.h
37681ad6265SDimitry AndricALG_HEADERS+=	ranges_find_if_not.h
3770fca6ea1SDimitry AndricALG_HEADERS+=	ranges_find_last.h
37881ad6265SDimitry AndricALG_HEADERS+=	ranges_for_each.h
37981ad6265SDimitry AndricALG_HEADERS+=	ranges_for_each_n.h
380753f127fSDimitry AndricALG_HEADERS+=	ranges_generate.h
381753f127fSDimitry AndricALG_HEADERS+=	ranges_generate_n.h
382753f127fSDimitry AndricALG_HEADERS+=	ranges_includes.h
383753f127fSDimitry AndricALG_HEADERS+=	ranges_inplace_merge.h
384753f127fSDimitry AndricALG_HEADERS+=	ranges_is_heap.h
385753f127fSDimitry AndricALG_HEADERS+=	ranges_is_heap_until.h
38681ad6265SDimitry AndricALG_HEADERS+=	ranges_is_partitioned.h
38761cfbce3SDimitry AndricALG_HEADERS+=	ranges_is_permutation.h
38881ad6265SDimitry AndricALG_HEADERS+=	ranges_is_sorted.h
38981ad6265SDimitry AndricALG_HEADERS+=	ranges_is_sorted_until.h
390fcaf7f86SDimitry AndricALG_HEADERS+=	ranges_iterator_concept.h
39181ad6265SDimitry AndricALG_HEADERS+=	ranges_lexicographical_compare.h
39281ad6265SDimitry AndricALG_HEADERS+=	ranges_lower_bound.h
393753f127fSDimitry AndricALG_HEADERS+=	ranges_make_heap.h
39481ad6265SDimitry AndricALG_HEADERS+=	ranges_max.h
39581ad6265SDimitry AndricALG_HEADERS+=	ranges_max_element.h
396753f127fSDimitry AndricALG_HEADERS+=	ranges_merge.h
39781ad6265SDimitry AndricALG_HEADERS+=	ranges_min.h
39881ad6265SDimitry AndricALG_HEADERS+=	ranges_min_element.h
39981ad6265SDimitry AndricALG_HEADERS+=	ranges_minmax.h
40081ad6265SDimitry AndricALG_HEADERS+=	ranges_minmax_element.h
40181ad6265SDimitry AndricALG_HEADERS+=	ranges_mismatch.h
40281ad6265SDimitry AndricALG_HEADERS+=	ranges_move.h
40381ad6265SDimitry AndricALG_HEADERS+=	ranges_move_backward.h
40461cfbce3SDimitry AndricALG_HEADERS+=	ranges_next_permutation.h
40581ad6265SDimitry AndricALG_HEADERS+=	ranges_none_of.h
406753f127fSDimitry AndricALG_HEADERS+=	ranges_nth_element.h
407fcaf7f86SDimitry AndricALG_HEADERS+=	ranges_partial_sort.h
408753f127fSDimitry AndricALG_HEADERS+=	ranges_partial_sort_copy.h
409753f127fSDimitry AndricALG_HEADERS+=	ranges_partition.h
410753f127fSDimitry AndricALG_HEADERS+=	ranges_partition_copy.h
411753f127fSDimitry AndricALG_HEADERS+=	ranges_partition_point.h
412753f127fSDimitry AndricALG_HEADERS+=	ranges_pop_heap.h
41361cfbce3SDimitry AndricALG_HEADERS+=	ranges_prev_permutation.h
414753f127fSDimitry AndricALG_HEADERS+=	ranges_push_heap.h
415753f127fSDimitry AndricALG_HEADERS+=	ranges_remove.h
416753f127fSDimitry AndricALG_HEADERS+=	ranges_remove_copy.h
417753f127fSDimitry AndricALG_HEADERS+=	ranges_remove_copy_if.h
418753f127fSDimitry AndricALG_HEADERS+=	ranges_remove_if.h
41981ad6265SDimitry AndricALG_HEADERS+=	ranges_replace.h
420753f127fSDimitry AndricALG_HEADERS+=	ranges_replace_copy.h
421753f127fSDimitry AndricALG_HEADERS+=	ranges_replace_copy_if.h
42281ad6265SDimitry AndricALG_HEADERS+=	ranges_replace_if.h
42381ad6265SDimitry AndricALG_HEADERS+=	ranges_reverse.h
424753f127fSDimitry AndricALG_HEADERS+=	ranges_reverse_copy.h
42561cfbce3SDimitry AndricALG_HEADERS+=	ranges_rotate.h
426753f127fSDimitry AndricALG_HEADERS+=	ranges_rotate_copy.h
42761cfbce3SDimitry AndricALG_HEADERS+=	ranges_sample.h
428753f127fSDimitry AndricALG_HEADERS+=	ranges_search.h
429753f127fSDimitry AndricALG_HEADERS+=	ranges_search_n.h
430753f127fSDimitry AndricALG_HEADERS+=	ranges_set_difference.h
431753f127fSDimitry AndricALG_HEADERS+=	ranges_set_intersection.h
432753f127fSDimitry AndricALG_HEADERS+=	ranges_set_symmetric_difference.h
433753f127fSDimitry AndricALG_HEADERS+=	ranges_set_union.h
434753f127fSDimitry AndricALG_HEADERS+=	ranges_shuffle.h
43581ad6265SDimitry AndricALG_HEADERS+=	ranges_sort.h
436753f127fSDimitry AndricALG_HEADERS+=	ranges_sort_heap.h
437753f127fSDimitry AndricALG_HEADERS+=	ranges_stable_partition.h
43881ad6265SDimitry AndricALG_HEADERS+=	ranges_stable_sort.h
43906c3fb27SDimitry AndricALG_HEADERS+=	ranges_starts_with.h
44081ad6265SDimitry AndricALG_HEADERS+=	ranges_swap_ranges.h
44181ad6265SDimitry AndricALG_HEADERS+=	ranges_transform.h
442753f127fSDimitry AndricALG_HEADERS+=	ranges_unique.h
443753f127fSDimitry AndricALG_HEADERS+=	ranges_unique_copy.h
44481ad6265SDimitry AndricALG_HEADERS+=	ranges_upper_bound.h
4456e75b2fbSDimitry AndricALG_HEADERS+=	remove.h
4466e75b2fbSDimitry AndricALG_HEADERS+=	remove_copy.h
4476e75b2fbSDimitry AndricALG_HEADERS+=	remove_copy_if.h
4486e75b2fbSDimitry AndricALG_HEADERS+=	remove_if.h
4496e75b2fbSDimitry AndricALG_HEADERS+=	replace.h
4506e75b2fbSDimitry AndricALG_HEADERS+=	replace_copy.h
4516e75b2fbSDimitry AndricALG_HEADERS+=	replace_copy_if.h
4526e75b2fbSDimitry AndricALG_HEADERS+=	replace_if.h
4536e75b2fbSDimitry AndricALG_HEADERS+=	reverse.h
4546e75b2fbSDimitry AndricALG_HEADERS+=	reverse_copy.h
4556e75b2fbSDimitry AndricALG_HEADERS+=	rotate.h
4566e75b2fbSDimitry AndricALG_HEADERS+=	rotate_copy.h
4576e75b2fbSDimitry AndricALG_HEADERS+=	sample.h
4586e75b2fbSDimitry AndricALG_HEADERS+=	search.h
4596e75b2fbSDimitry AndricALG_HEADERS+=	search_n.h
4606e75b2fbSDimitry AndricALG_HEADERS+=	set_difference.h
4616e75b2fbSDimitry AndricALG_HEADERS+=	set_intersection.h
4626e75b2fbSDimitry AndricALG_HEADERS+=	set_symmetric_difference.h
4636e75b2fbSDimitry AndricALG_HEADERS+=	set_union.h
4646e75b2fbSDimitry AndricALG_HEADERS+=	shift_left.h
4656e75b2fbSDimitry AndricALG_HEADERS+=	shift_right.h
4666e75b2fbSDimitry AndricALG_HEADERS+=	shuffle.h
4676e75b2fbSDimitry AndricALG_HEADERS+=	sift_down.h
4680fca6ea1SDimitry AndricALG_HEADERS+=	simd_utils.h
4696e75b2fbSDimitry AndricALG_HEADERS+=	sort.h
4706e75b2fbSDimitry AndricALG_HEADERS+=	sort_heap.h
4716e75b2fbSDimitry AndricALG_HEADERS+=	stable_partition.h
4726e75b2fbSDimitry AndricALG_HEADERS+=	stable_sort.h
4736e75b2fbSDimitry AndricALG_HEADERS+=	swap_ranges.h
47406c3fb27SDimitry AndricALG_HEADERS+=	three_way_comp_ref_type.h
4756e75b2fbSDimitry AndricALG_HEADERS+=	transform.h
47661cfbce3SDimitry AndricALG_HEADERS+=	uniform_random_bit_generator_adaptor.h
4776e75b2fbSDimitry AndricALG_HEADERS+=	unique.h
4786e75b2fbSDimitry AndricALG_HEADERS+=	unique_copy.h
4796e75b2fbSDimitry AndricALG_HEADERS+=	unwrap_iter.h
48061cfbce3SDimitry AndricALG_HEADERS+=	unwrap_range.h
4816e75b2fbSDimitry AndricALG_HEADERS+=	upper_bound.h
4826e75b2fbSDimitry Andric.for hdr in ${ALG_HEADERS}
4836e75b2fbSDimitry AndricALG+=		${HDRDIR}/__algorithm/${hdr}
4846e75b2fbSDimitry Andric.endfor
485d409305fSDimitry Andric
48606c3fb27SDimitry AndricINCSGROUPS+=	ATM
48706c3fb27SDimitry AndricATMDIR=		${CXXINCLUDEDIR}/__atomic
48806c3fb27SDimitry AndricATM_HEADERS+=	aliases.h
48906c3fb27SDimitry AndricATM_HEADERS+=	atomic.h
49006c3fb27SDimitry AndricATM_HEADERS+=	atomic_base.h
49106c3fb27SDimitry AndricATM_HEADERS+=	atomic_flag.h
49206c3fb27SDimitry AndricATM_HEADERS+=	atomic_init.h
49306c3fb27SDimitry AndricATM_HEADERS+=	atomic_lock_free.h
4940fca6ea1SDimitry AndricATM_HEADERS+=	atomic_ref.h
49506c3fb27SDimitry AndricATM_HEADERS+=	atomic_sync.h
49606c3fb27SDimitry AndricATM_HEADERS+=	check_memory_order.h
49706c3fb27SDimitry AndricATM_HEADERS+=	contention_t.h
49806c3fb27SDimitry AndricATM_HEADERS+=	cxx_atomic_impl.h
49906c3fb27SDimitry AndricATM_HEADERS+=	fence.h
50006c3fb27SDimitry AndricATM_HEADERS+=	is_always_lock_free.h
50106c3fb27SDimitry AndricATM_HEADERS+=	kill_dependency.h
50206c3fb27SDimitry AndricATM_HEADERS+=	memory_order.h
5030fca6ea1SDimitry AndricATM_HEADERS+=	to_gcc_order.h
50406c3fb27SDimitry Andric.for hdr in ${ATM_HEADERS}
50506c3fb27SDimitry AndricATM+=		${HDRDIR}/__atomic/${hdr}
50606c3fb27SDimitry Andric.endfor
50706c3fb27SDimitry Andric
5085e801ac6SDimitry AndricINCSGROUPS+=	BIT
5095e801ac6SDimitry AndricBITDIR=		${CXXINCLUDEDIR}/__bit
5105e801ac6SDimitry AndricBIT_HEADERS+=	bit_cast.h
511bdd1243dSDimitry AndricBIT_HEADERS+=	bit_ceil.h
512bdd1243dSDimitry AndricBIT_HEADERS+=	bit_floor.h
513bdd1243dSDimitry AndricBIT_HEADERS+=	bit_log2.h
514bdd1243dSDimitry AndricBIT_HEADERS+=	bit_width.h
515bdd1243dSDimitry AndricBIT_HEADERS+=	blsr.h
5164824e7fdSDimitry AndricBIT_HEADERS+=	byteswap.h
517bdd1243dSDimitry AndricBIT_HEADERS+=	countl.h
518bdd1243dSDimitry AndricBIT_HEADERS+=	countr.h
519bdd1243dSDimitry AndricBIT_HEADERS+=	endian.h
520bdd1243dSDimitry AndricBIT_HEADERS+=	has_single_bit.h
5215f757f3fSDimitry AndricBIT_HEADERS+=	invert_if.h
522bdd1243dSDimitry AndricBIT_HEADERS+=	popcount.h
523bdd1243dSDimitry AndricBIT_HEADERS+=	rotate.h
5245e801ac6SDimitry Andric.for hdr in ${BIT_HEADERS}
5255e801ac6SDimitry AndricBIT+=		${HDRDIR}/__bit/${hdr}
5265e801ac6SDimitry Andric.endfor
5275e801ac6SDimitry Andric
5285e801ac6SDimitry AndricINCSGROUPS+=	CHC
5295e801ac6SDimitry AndricCHCDIR=		${CXXINCLUDEDIR}/__charconv
5305e801ac6SDimitry AndricCHC_HEADERS+=	chars_format.h
53106c3fb27SDimitry AndricCHC_HEADERS+=	from_chars_integral.h
5325e801ac6SDimitry AndricCHC_HEADERS+=	from_chars_result.h
53381ad6265SDimitry AndricCHC_HEADERS+=	tables.h
53406c3fb27SDimitry AndricCHC_HEADERS+=	to_chars.h
53581ad6265SDimitry AndricCHC_HEADERS+=	to_chars_base_10.h
53606c3fb27SDimitry AndricCHC_HEADERS+=	to_chars_floating_point.h
53706c3fb27SDimitry AndricCHC_HEADERS+=	to_chars_integral.h
5385e801ac6SDimitry AndricCHC_HEADERS+=	to_chars_result.h
53906c3fb27SDimitry AndricCHC_HEADERS+=	traits.h
5405e801ac6SDimitry Andric.for hdr in ${CHC_HEADERS}
5415e801ac6SDimitry AndricCHC+=		${HDRDIR}/__charconv/${hdr}
5425e801ac6SDimitry Andric.endfor
5435e801ac6SDimitry Andric
54404eeddc0SDimitry AndricINCSGROUPS+=	CHR
54504eeddc0SDimitry AndricCHRDIR=		${CXXINCLUDEDIR}/__chrono
54604eeddc0SDimitry AndricCHR_HEADERS+=	calendar.h
54706c3fb27SDimitry AndricCHR_HEADERS+=	concepts.h
54804eeddc0SDimitry AndricCHR_HEADERS+=	convert_to_timespec.h
549bdd1243dSDimitry AndricCHR_HEADERS+=	convert_to_tm.h
55081ad6265SDimitry AndricCHR_HEADERS+=	day.h
55104eeddc0SDimitry AndricCHR_HEADERS+=	duration.h
5520fca6ea1SDimitry AndricCHR_HEADERS+=	exception.h
55304eeddc0SDimitry AndricCHR_HEADERS+=	file_clock.h
554bdd1243dSDimitry AndricCHR_HEADERS+=	formatter.h
55581ad6265SDimitry AndricCHR_HEADERS+=	hh_mm_ss.h
55604eeddc0SDimitry AndricCHR_HEADERS+=	high_resolution_clock.h
5570fca6ea1SDimitry AndricCHR_HEADERS+=	leap_second.h
55881ad6265SDimitry AndricCHR_HEADERS+=	literals.h
5590fca6ea1SDimitry AndricCHR_HEADERS+=	local_info.h
56081ad6265SDimitry AndricCHR_HEADERS+=	month.h
56181ad6265SDimitry AndricCHR_HEADERS+=	month_weekday.h
56281ad6265SDimitry AndricCHR_HEADERS+=	monthday.h
563bdd1243dSDimitry AndricCHR_HEADERS+=	ostream.h
564bdd1243dSDimitry AndricCHR_HEADERS+=	parser_std_format_spec.h
565bdd1243dSDimitry AndricCHR_HEADERS+=	statically_widen.h
56604eeddc0SDimitry AndricCHR_HEADERS+=	steady_clock.h
5670fca6ea1SDimitry AndricCHR_HEADERS+=	sys_info.h
56804eeddc0SDimitry AndricCHR_HEADERS+=	system_clock.h
56904eeddc0SDimitry AndricCHR_HEADERS+=	time_point.h
5700fca6ea1SDimitry AndricCHR_HEADERS+=	time_zone.h
5710fca6ea1SDimitry AndricCHR_HEADERS+=	time_zone_link.h
5725f757f3fSDimitry AndricCHR_HEADERS+=	tzdb.h
5735f757f3fSDimitry AndricCHR_HEADERS+=	tzdb_list.h
57481ad6265SDimitry AndricCHR_HEADERS+=	weekday.h
57581ad6265SDimitry AndricCHR_HEADERS+=	year.h
57681ad6265SDimitry AndricCHR_HEADERS+=	year_month.h
57781ad6265SDimitry AndricCHR_HEADERS+=	year_month_day.h
57881ad6265SDimitry AndricCHR_HEADERS+=	year_month_weekday.h
5790fca6ea1SDimitry AndricCHR_HEADERS+=	zoned_time.h
58004eeddc0SDimitry Andric.for hdr in ${CHR_HEADERS}
58104eeddc0SDimitry AndricCHR+=		${HDRDIR}/__chrono/${hdr}
58204eeddc0SDimitry Andric.endfor
58304eeddc0SDimitry Andric
5845e801ac6SDimitry AndricINCSGROUPS+=	CMP
5855e801ac6SDimitry AndricCMPDIR=		${CXXINCLUDEDIR}/__compare
5865e801ac6SDimitry AndricCMP_HEADERS+=	common_comparison_category.h
5871fd87a68SDimitry AndricCMP_HEADERS+=	compare_partial_order_fallback.h
5881fd87a68SDimitry AndricCMP_HEADERS+=	compare_strong_order_fallback.h
5895e801ac6SDimitry AndricCMP_HEADERS+=	compare_three_way.h
5905e801ac6SDimitry AndricCMP_HEADERS+=	compare_three_way_result.h
5911fd87a68SDimitry AndricCMP_HEADERS+=	compare_weak_order_fallback.h
5925e801ac6SDimitry AndricCMP_HEADERS+=	is_eq.h
5935e801ac6SDimitry AndricCMP_HEADERS+=	ordering.h
5944824e7fdSDimitry AndricCMP_HEADERS+=	partial_order.h
5954824e7fdSDimitry AndricCMP_HEADERS+=	strong_order.h
5965e801ac6SDimitry AndricCMP_HEADERS+=	synth_three_way.h
5975e801ac6SDimitry AndricCMP_HEADERS+=	three_way_comparable.h
5984824e7fdSDimitry AndricCMP_HEADERS+=	weak_order.h
5995e801ac6SDimitry Andric.for hdr in ${CMP_HEADERS}
6005e801ac6SDimitry AndricCMP+=		${HDRDIR}/__compare/${hdr}
6015e801ac6SDimitry Andric.endfor
6025e801ac6SDimitry Andric
6035e801ac6SDimitry AndricINCSGROUPS+=	CON
6045e801ac6SDimitry AndricCONDIR=		${CXXINCLUDEDIR}/__concepts
6055e801ac6SDimitry AndricCON_HEADERS+=	arithmetic.h
6065e801ac6SDimitry AndricCON_HEADERS+=	assignable.h
6075e801ac6SDimitry AndricCON_HEADERS+=	boolean_testable.h
6085e801ac6SDimitry AndricCON_HEADERS+=	class_or_enum.h
6095e801ac6SDimitry AndricCON_HEADERS+=	common_reference_with.h
6105e801ac6SDimitry AndricCON_HEADERS+=	common_with.h
6115e801ac6SDimitry AndricCON_HEADERS+=	constructible.h
6125e801ac6SDimitry AndricCON_HEADERS+=	convertible_to.h
6135e801ac6SDimitry AndricCON_HEADERS+=	copyable.h
6145e801ac6SDimitry AndricCON_HEADERS+=	derived_from.h
6155e801ac6SDimitry AndricCON_HEADERS+=	destructible.h
6165e801ac6SDimitry AndricCON_HEADERS+=	different_from.h
6175e801ac6SDimitry AndricCON_HEADERS+=	equality_comparable.h
6185e801ac6SDimitry AndricCON_HEADERS+=	invocable.h
6195e801ac6SDimitry AndricCON_HEADERS+=	movable.h
6205e801ac6SDimitry AndricCON_HEADERS+=	predicate.h
6215e801ac6SDimitry AndricCON_HEADERS+=	regular.h
6225e801ac6SDimitry AndricCON_HEADERS+=	relation.h
6235e801ac6SDimitry AndricCON_HEADERS+=	same_as.h
6245e801ac6SDimitry AndricCON_HEADERS+=	semiregular.h
6255e801ac6SDimitry AndricCON_HEADERS+=	swappable.h
6265e801ac6SDimitry AndricCON_HEADERS+=	totally_ordered.h
6275e801ac6SDimitry Andric.for hdr in ${CON_HEADERS}
6285e801ac6SDimitry AndricCON+=		${HDRDIR}/__concepts/${hdr}
6295e801ac6SDimitry Andric.endfor
6305e801ac6SDimitry Andric
63106c3fb27SDimitry AndricINCSGROUPS+=	CND
63206c3fb27SDimitry AndricCNDDIR=		${CXXINCLUDEDIR}/__condition_variable
63306c3fb27SDimitry AndricCND_HEADERS+=	condition_variable.h
63406c3fb27SDimitry Andric.for hdr in ${CND_HEADERS}
63506c3fb27SDimitry AndricCND+=		${HDRDIR}/__condition_variable/${hdr}
63606c3fb27SDimitry Andric.endfor
63706c3fb27SDimitry Andric
6380fca6ea1SDimitry AndricINCSGROUPS+=	CNF
6390fca6ea1SDimitry AndricCNFDIR=		${CXXINCLUDEDIR}/__configuration
6400fca6ea1SDimitry AndricCNF_HEADERS+=	abi.h
6410fca6ea1SDimitry AndricCNF_HEADERS+=	availability.h
6420fca6ea1SDimitry AndricCNF_HEADERS+=	compiler.h
6430fca6ea1SDimitry AndricCNF_HEADERS+=	language.h
6440fca6ea1SDimitry AndricCNF_HEADERS+=	platform.h
6450fca6ea1SDimitry Andric.for hdr in ${CNF_HEADERS}
6460fca6ea1SDimitry AndricCNF+=		${HDRDIR}/__configuration/${hdr}
6470fca6ea1SDimitry Andric.endfor
6480fca6ea1SDimitry Andric
6495e801ac6SDimitry AndricINCSGROUPS+=	COR
6505e801ac6SDimitry AndricCORDIR=		${CXXINCLUDEDIR}/__coroutine
6515e801ac6SDimitry AndricCOR_HEADERS+=	coroutine_handle.h
6525e801ac6SDimitry AndricCOR_HEADERS+=	coroutine_traits.h
6535e801ac6SDimitry AndricCOR_HEADERS+=	noop_coroutine_handle.h
6545e801ac6SDimitry AndricCOR_HEADERS+=	trivial_awaitables.h
6555e801ac6SDimitry Andric.for hdr in ${COR_HEADERS}
6565e801ac6SDimitry AndricCOR+=		${HDRDIR}/__coroutine/${hdr}
6575e801ac6SDimitry Andric.endfor
6585e801ac6SDimitry Andric
659753f127fSDimitry AndricINCSGROUPS+=	DBG
660753f127fSDimitry AndricDBGDIR=		${CXXINCLUDEDIR}/__debug_utils
661753f127fSDimitry AndricDBG_HEADERS+=	randomize_range.h
6620fca6ea1SDimitry AndricDBG_HEADERS+=	sanitizers.h
66306c3fb27SDimitry AndricDBG_HEADERS+=	strict_weak_ordering_check.h
664753f127fSDimitry Andric.for hdr in ${DBG_HEADERS}
665753f127fSDimitry AndricDBG+=		${HDRDIR}/__debug_utils/${hdr}
666753f127fSDimitry Andric.endfor
667753f127fSDimitry Andric
668bdd1243dSDimitry AndricINCSGROUPS+=	EXC
66906c3fb27SDimitry AndricEXCDIR=		${CXXINCLUDEDIR}/__exception
67006c3fb27SDimitry AndricEXC_HEADERS+=	exception.h
67106c3fb27SDimitry AndricEXC_HEADERS+=	exception_ptr.h
67206c3fb27SDimitry AndricEXC_HEADERS+=	nested_exception.h
67306c3fb27SDimitry AndricEXC_HEADERS+=	operations.h
67406c3fb27SDimitry AndricEXC_HEADERS+=	terminate.h
675bdd1243dSDimitry Andric.for hdr in ${EXC_HEADERS}
67606c3fb27SDimitry AndricEXC+=		${HDRDIR}/__exception/${hdr}
67706c3fb27SDimitry Andric.endfor
67806c3fb27SDimitry Andric
67906c3fb27SDimitry AndricINCSGROUPS+=	EXD
68006c3fb27SDimitry AndricEXDDIR=		${CXXINCLUDEDIR}/__expected
68106c3fb27SDimitry AndricEXD_HEADERS+=	bad_expected_access.h
68206c3fb27SDimitry AndricEXD_HEADERS+=	expected.h
68306c3fb27SDimitry AndricEXD_HEADERS+=	unexpect.h
68406c3fb27SDimitry AndricEXD_HEADERS+=	unexpected.h
68506c3fb27SDimitry Andric.for hdr in ${EXD_HEADERS}
68606c3fb27SDimitry AndricEXD+=		${HDRDIR}/__expected/${hdr}
687bdd1243dSDimitry Andric.endfor
688bdd1243dSDimitry Andric
68904eeddc0SDimitry AndricINCSGROUPS+=	FS
69004eeddc0SDimitry AndricFSDIR=		${CXXINCLUDEDIR}/__filesystem
69104eeddc0SDimitry AndricFS_HEADERS+=	copy_options.h
69204eeddc0SDimitry AndricFS_HEADERS+=	directory_entry.h
69304eeddc0SDimitry AndricFS_HEADERS+=	directory_iterator.h
69404eeddc0SDimitry AndricFS_HEADERS+=	directory_options.h
69504eeddc0SDimitry AndricFS_HEADERS+=	file_status.h
69604eeddc0SDimitry AndricFS_HEADERS+=	file_time_type.h
69704eeddc0SDimitry AndricFS_HEADERS+=	file_type.h
69804eeddc0SDimitry AndricFS_HEADERS+=	filesystem_error.h
69904eeddc0SDimitry AndricFS_HEADERS+=	operations.h
70004eeddc0SDimitry AndricFS_HEADERS+=	path.h
70104eeddc0SDimitry AndricFS_HEADERS+=	path_iterator.h
70204eeddc0SDimitry AndricFS_HEADERS+=	perm_options.h
70304eeddc0SDimitry AndricFS_HEADERS+=	perms.h
70404eeddc0SDimitry AndricFS_HEADERS+=	recursive_directory_iterator.h
70504eeddc0SDimitry AndricFS_HEADERS+=	space_info.h
70604eeddc0SDimitry AndricFS_HEADERS+=	u8path.h
70704eeddc0SDimitry Andric.for hdr in ${FS_HEADERS}
70804eeddc0SDimitry AndricFS+=		${HDRDIR}/__filesystem/${hdr}
70904eeddc0SDimitry Andric.endfor
71004eeddc0SDimitry Andric
7116e75b2fbSDimitry AndricINCSGROUPS+=	FMT
7126e75b2fbSDimitry AndricFMTDIR=		${CXXINCLUDEDIR}/__format
71381ad6265SDimitry AndricFMT_HEADERS+=	buffer.h
71481ad6265SDimitry AndricFMT_HEADERS+=	concepts.h
715bdd1243dSDimitry AndricFMT_HEADERS+=	container_adaptor.h
71681ad6265SDimitry AndricFMT_HEADERS+=	enable_insertable.h
717bdd1243dSDimitry AndricFMT_HEADERS+=	escaped_output_table.h
718fcaf7f86SDimitry AndricFMT_HEADERS+=	extended_grapheme_cluster_table.h
7195e801ac6SDimitry AndricFMT_HEADERS+=	format_arg.h
72081ad6265SDimitry AndricFMT_HEADERS+=	format_arg_store.h
7215e801ac6SDimitry AndricFMT_HEADERS+=	format_args.h
7225e801ac6SDimitry AndricFMT_HEADERS+=	format_context.h
7236e75b2fbSDimitry AndricFMT_HEADERS+=	format_error.h
724bdd1243dSDimitry AndricFMT_HEADERS+=	format_functions.h
7256e75b2fbSDimitry AndricFMT_HEADERS+=	format_parse_context.h
7265e801ac6SDimitry AndricFMT_HEADERS+=	format_string.h
7275e801ac6SDimitry AndricFMT_HEADERS+=	format_to_n_result.h
7285e801ac6SDimitry AndricFMT_HEADERS+=	formatter.h
7295e801ac6SDimitry AndricFMT_HEADERS+=	formatter_bool.h
7305e801ac6SDimitry AndricFMT_HEADERS+=	formatter_char.h
73104eeddc0SDimitry AndricFMT_HEADERS+=	formatter_floating_point.h
7325e801ac6SDimitry AndricFMT_HEADERS+=	formatter_integer.h
7335e801ac6SDimitry AndricFMT_HEADERS+=	formatter_integral.h
73481ad6265SDimitry AndricFMT_HEADERS+=	formatter_output.h
73504eeddc0SDimitry AndricFMT_HEADERS+=	formatter_pointer.h
7365e801ac6SDimitry AndricFMT_HEADERS+=	formatter_string.h
737bdd1243dSDimitry AndricFMT_HEADERS+=	formatter_tuple.h
7380fca6ea1SDimitry AndricFMT_HEADERS+=	indic_conjunct_break_table.h
7395e801ac6SDimitry AndricFMT_HEADERS+=	parser_std_format_spec.h
740bdd1243dSDimitry AndricFMT_HEADERS+=	range_default_formatter.h
741bdd1243dSDimitry AndricFMT_HEADERS+=	range_formatter.h
742fcaf7f86SDimitry AndricFMT_HEADERS+=	unicode.h
74306c3fb27SDimitry AndricFMT_HEADERS+=	width_estimation_table.h
74406c3fb27SDimitry AndricFMT_HEADERS+=	write_escaped.h
7456e75b2fbSDimitry Andric.for hdr in ${FMT_HEADERS}
7466e75b2fbSDimitry AndricFMT+=		${HDRDIR}/__format/${hdr}
7476e75b2fbSDimitry Andric.endfor
748d409305fSDimitry Andric
7496e75b2fbSDimitry AndricINCSGROUPS+=	FUN
7506e75b2fbSDimitry AndricFUNDIR=		${CXXINCLUDEDIR}/__functional
7516e75b2fbSDimitry AndricFUN_HEADERS+=	binary_function.h
7526e75b2fbSDimitry AndricFUN_HEADERS+=	binary_negate.h
7536e75b2fbSDimitry AndricFUN_HEADERS+=	bind.h
7545e801ac6SDimitry AndricFUN_HEADERS+=	bind_back.h
7556e75b2fbSDimitry AndricFUN_HEADERS+=	bind_front.h
7566e75b2fbSDimitry AndricFUN_HEADERS+=	binder1st.h
7576e75b2fbSDimitry AndricFUN_HEADERS+=	binder2nd.h
75881ad6265SDimitry AndricFUN_HEADERS+=	boyer_moore_searcher.h
7595e801ac6SDimitry AndricFUN_HEADERS+=	compose.h
7606e75b2fbSDimitry AndricFUN_HEADERS+=	default_searcher.h
7616e75b2fbSDimitry AndricFUN_HEADERS+=	function.h
7626e75b2fbSDimitry AndricFUN_HEADERS+=	hash.h
7636e75b2fbSDimitry AndricFUN_HEADERS+=	identity.h
7646e75b2fbSDimitry AndricFUN_HEADERS+=	invoke.h
7656e75b2fbSDimitry AndricFUN_HEADERS+=	is_transparent.h
7666e75b2fbSDimitry AndricFUN_HEADERS+=	mem_fn.h
7676e75b2fbSDimitry AndricFUN_HEADERS+=	mem_fun_ref.h
7686e75b2fbSDimitry AndricFUN_HEADERS+=	not_fn.h
7696e75b2fbSDimitry AndricFUN_HEADERS+=	operations.h
7706e75b2fbSDimitry AndricFUN_HEADERS+=	perfect_forward.h
7716e75b2fbSDimitry AndricFUN_HEADERS+=	pointer_to_binary_function.h
7726e75b2fbSDimitry AndricFUN_HEADERS+=	pointer_to_unary_function.h
7736e75b2fbSDimitry AndricFUN_HEADERS+=	ranges_operations.h
7746e75b2fbSDimitry AndricFUN_HEADERS+=	reference_wrapper.h
7756e75b2fbSDimitry AndricFUN_HEADERS+=	unary_function.h
7766e75b2fbSDimitry AndricFUN_HEADERS+=	unary_negate.h
7776e75b2fbSDimitry AndricFUN_HEADERS+=	weak_result_type.h
7786e75b2fbSDimitry Andric.for hdr in ${FUN_HEADERS}
7796e75b2fbSDimitry AndricFUN+=		${HDRDIR}/__functional/${hdr}
7806e75b2fbSDimitry Andric.endfor
7816e75b2fbSDimitry Andric
78281ad6265SDimitry AndricINCSGROUPS+=	FWD
78381ad6265SDimitry AndricFWDDIR=		${CXXINCLUDEDIR}/__fwd
784bdd1243dSDimitry AndricFWD_HEADERS+=	array.h
7855f757f3fSDimitry AndricFWD_HEADERS+=	bit_reference.h
7860fca6ea1SDimitry AndricFWD_HEADERS+=	complex.h
7870fca6ea1SDimitry AndricFWD_HEADERS+=	deque.h
7880fca6ea1SDimitry AndricFWD_HEADERS+=	format.h
78906c3fb27SDimitry AndricFWD_HEADERS+=	fstream.h
7900fca6ea1SDimitry AndricFWD_HEADERS+=	functional.h
79106c3fb27SDimitry AndricFWD_HEADERS+=	ios.h
79206c3fb27SDimitry AndricFWD_HEADERS+=	istream.h
79306c3fb27SDimitry AndricFWD_HEADERS+=	mdspan.h
7940fca6ea1SDimitry AndricFWD_HEADERS+=	memory.h
795bdd1243dSDimitry AndricFWD_HEADERS+=	memory_resource.h
79606c3fb27SDimitry AndricFWD_HEADERS+=	ostream.h
797bdd1243dSDimitry AndricFWD_HEADERS+=	pair.h
7980fca6ea1SDimitry AndricFWD_HEADERS+=	queue.h
79981ad6265SDimitry AndricFWD_HEADERS+=	span.h
80006c3fb27SDimitry AndricFWD_HEADERS+=	sstream.h
8010fca6ea1SDimitry AndricFWD_HEADERS+=	stack.h
80206c3fb27SDimitry AndricFWD_HEADERS+=	streambuf.h
803bdd1243dSDimitry AndricFWD_HEADERS+=	string.h
80481ad6265SDimitry AndricFWD_HEADERS+=	string_view.h
805bdd1243dSDimitry AndricFWD_HEADERS+=	subrange.h
806bdd1243dSDimitry AndricFWD_HEADERS+=	tuple.h
8070fca6ea1SDimitry AndricFWD_HEADERS+=	vector.h
80881ad6265SDimitry Andric.for hdr in ${FWD_HEADERS}
80981ad6265SDimitry AndricFWD+=		${HDRDIR}/__fwd/${hdr}
81081ad6265SDimitry Andric.endfor
81181ad6265SDimitry Andric
81281ad6265SDimitry AndricINCSGROUPS+=	IOS
81381ad6265SDimitry AndricIOSDIR=		${CXXINCLUDEDIR}/__ios
81481ad6265SDimitry AndricIOS_HEADERS+=	fpos.h
81581ad6265SDimitry Andric.for hdr in ${IOS_HEADERS}
81681ad6265SDimitry AndricIOS+=		${HDRDIR}/__ios/${hdr}
81781ad6265SDimitry Andric.endfor
81881ad6265SDimitry Andric
8196e75b2fbSDimitry AndricINCSGROUPS+=	IT
8206e75b2fbSDimitry AndricITDIR=		${CXXINCLUDEDIR}/__iterator
8216e75b2fbSDimitry AndricIT_HEADERS+=	access.h
8226e75b2fbSDimitry AndricIT_HEADERS+=	advance.h
8230fca6ea1SDimitry AndricIT_HEADERS+=	aliasing_iterator.h
8246e75b2fbSDimitry AndricIT_HEADERS+=	back_insert_iterator.h
82581ad6265SDimitry AndricIT_HEADERS+=	bounded_iter.h
8266e75b2fbSDimitry AndricIT_HEADERS+=	common_iterator.h
8276e75b2fbSDimitry AndricIT_HEADERS+=	concepts.h
8286e75b2fbSDimitry AndricIT_HEADERS+=	counted_iterator.h
82906c3fb27SDimitry AndricIT_HEADERS+=	cpp17_iterator_concepts.h
8306e75b2fbSDimitry AndricIT_HEADERS+=	data.h
8316e75b2fbSDimitry AndricIT_HEADERS+=	default_sentinel.h
8326e75b2fbSDimitry AndricIT_HEADERS+=	distance.h
8336e75b2fbSDimitry AndricIT_HEADERS+=	empty.h
8346e75b2fbSDimitry AndricIT_HEADERS+=	erase_if_container.h
8356e75b2fbSDimitry AndricIT_HEADERS+=	front_insert_iterator.h
8366e75b2fbSDimitry AndricIT_HEADERS+=	incrementable_traits.h
83704eeddc0SDimitry AndricIT_HEADERS+=	indirectly_comparable.h
8386e75b2fbSDimitry AndricIT_HEADERS+=	insert_iterator.h
8396e75b2fbSDimitry AndricIT_HEADERS+=	istream_iterator.h
8406e75b2fbSDimitry AndricIT_HEADERS+=	istreambuf_iterator.h
8416e75b2fbSDimitry AndricIT_HEADERS+=	iter_move.h
8426e75b2fbSDimitry AndricIT_HEADERS+=	iter_swap.h
8436e75b2fbSDimitry AndricIT_HEADERS+=	iterator.h
8446e75b2fbSDimitry AndricIT_HEADERS+=	iterator_traits.h
845bdd1243dSDimitry AndricIT_HEADERS+=	iterator_with_data.h
84681ad6265SDimitry AndricIT_HEADERS+=	mergeable.h
8476e75b2fbSDimitry AndricIT_HEADERS+=	move_iterator.h
84881ad6265SDimitry AndricIT_HEADERS+=	move_sentinel.h
8496e75b2fbSDimitry AndricIT_HEADERS+=	next.h
8506e75b2fbSDimitry AndricIT_HEADERS+=	ostream_iterator.h
8516e75b2fbSDimitry AndricIT_HEADERS+=	ostreambuf_iterator.h
85281ad6265SDimitry AndricIT_HEADERS+=	permutable.h
8536e75b2fbSDimitry AndricIT_HEADERS+=	prev.h
8546e75b2fbSDimitry AndricIT_HEADERS+=	projected.h
85506c3fb27SDimitry AndricIT_HEADERS+=	ranges_iterator_traits.h
8566e75b2fbSDimitry AndricIT_HEADERS+=	readable_traits.h
8576e75b2fbSDimitry AndricIT_HEADERS+=	reverse_access.h
8586e75b2fbSDimitry AndricIT_HEADERS+=	reverse_iterator.h
859bdd1243dSDimitry AndricIT_HEADERS+=	segmented_iterator.h
8606e75b2fbSDimitry AndricIT_HEADERS+=	size.h
86181ad6265SDimitry AndricIT_HEADERS+=	sortable.h
8625e801ac6SDimitry AndricIT_HEADERS+=	unreachable_sentinel.h
8636e75b2fbSDimitry AndricIT_HEADERS+=	wrap_iter.h
8646e75b2fbSDimitry Andric.for hdr in ${IT_HEADERS}
8656e75b2fbSDimitry AndricIT+=		${HDRDIR}/__iterator/${hdr}
8666e75b2fbSDimitry Andric.endfor
8676e75b2fbSDimitry Andric
8680fca6ea1SDimitry AndricINCSGROUPS+=	LOC
8690fca6ea1SDimitry AndricLOCDIR=		${CXXINCLUDEDIR}/__locale_dir
8700fca6ea1SDimitry AndricLOC_HEADERS+=	locale_base_api.h
8710fca6ea1SDimitry Andric.for hdr in ${LOC_HEADERS}
8720fca6ea1SDimitry AndricLOC+=		${HDRDIR}/__locale_dir/${hdr}
8730fca6ea1SDimitry Andric.endfor
8740fca6ea1SDimitry Andric
87506c3fb27SDimitry AndricINCSGROUPS+=	LBA
87606c3fb27SDimitry AndricLBADIR=		${CXXINCLUDEDIR}/__locale_dir/locale_base_api
87706c3fb27SDimitry AndricLBA_HEADERS+=	bsd_locale_defaults.h
87806c3fb27SDimitry AndricLBA_HEADERS+=	bsd_locale_fallbacks.h
87906c3fb27SDimitry AndricLBA_HEADERS+=	locale_guard.h
88006c3fb27SDimitry Andric.for hdr in ${LBA_HEADERS}
88106c3fb27SDimitry AndricLBA+=		${HDRDIR}/__locale_dir/locale_base_api/${hdr}
88206c3fb27SDimitry Andric.endfor
88306c3fb27SDimitry Andric
8845f757f3fSDimitry AndricINCSGROUPS+=	MAT
8855f757f3fSDimitry AndricMATDIR=		${CXXINCLUDEDIR}/__math
8865f757f3fSDimitry AndricMAT_HEADERS+=	abs.h
8875f757f3fSDimitry AndricMAT_HEADERS+=	copysign.h
8885f757f3fSDimitry AndricMAT_HEADERS+=	error_functions.h
8895f757f3fSDimitry AndricMAT_HEADERS+=	exponential_functions.h
8905f757f3fSDimitry AndricMAT_HEADERS+=	fdim.h
8915f757f3fSDimitry AndricMAT_HEADERS+=	fma.h
8925f757f3fSDimitry AndricMAT_HEADERS+=	gamma.h
8935f757f3fSDimitry AndricMAT_HEADERS+=	hyperbolic_functions.h
8945f757f3fSDimitry AndricMAT_HEADERS+=	hypot.h
8955f757f3fSDimitry AndricMAT_HEADERS+=	inverse_hyperbolic_functions.h
8965f757f3fSDimitry AndricMAT_HEADERS+=	inverse_trigonometric_functions.h
8975f757f3fSDimitry AndricMAT_HEADERS+=	logarithms.h
8985f757f3fSDimitry AndricMAT_HEADERS+=	min_max.h
8995f757f3fSDimitry AndricMAT_HEADERS+=	modulo.h
9005f757f3fSDimitry AndricMAT_HEADERS+=	remainder.h
9015f757f3fSDimitry AndricMAT_HEADERS+=	roots.h
9025f757f3fSDimitry AndricMAT_HEADERS+=	rounding_functions.h
9030fca6ea1SDimitry AndricMAT_HEADERS+=	special_functions.h
9045f757f3fSDimitry AndricMAT_HEADERS+=	traits.h
9055f757f3fSDimitry AndricMAT_HEADERS+=	trigonometric_functions.h
9065f757f3fSDimitry Andric.for hdr in ${MAT_HEADERS}
9075f757f3fSDimitry AndricMAT+=		${HDRDIR}/__math/${hdr}
9085f757f3fSDimitry Andric.endfor
9095f757f3fSDimitry Andric
91006c3fb27SDimitry AndricINCSGROUPS+=	MDS
91106c3fb27SDimitry AndricMDSDIR=		${CXXINCLUDEDIR}/__mdspan
91206c3fb27SDimitry AndricMDS_HEADERS+=	default_accessor.h
91306c3fb27SDimitry AndricMDS_HEADERS+=	extents.h
91406c3fb27SDimitry AndricMDS_HEADERS+=	layout_left.h
91506c3fb27SDimitry AndricMDS_HEADERS+=	layout_right.h
9165f757f3fSDimitry AndricMDS_HEADERS+=	layout_stride.h
91787eea35eSDimitry AndricMDS_HEADERS+=	mdspan.h
91806c3fb27SDimitry Andric.for hdr in ${MDS_HEADERS}
91906c3fb27SDimitry AndricMDS+=		${HDRDIR}/__mdspan/${hdr}
92006c3fb27SDimitry Andric.endfor
92106c3fb27SDimitry Andric
9226e75b2fbSDimitry AndricINCSGROUPS+=	MEM
9236e75b2fbSDimitry AndricMEMDIR=		${CXXINCLUDEDIR}/__memory
9246e75b2fbSDimitry AndricMEM_HEADERS+=	addressof.h
925bdd1243dSDimitry AndricMEM_HEADERS+=	align.h
92606c3fb27SDimitry AndricMEM_HEADERS+=	aligned_alloc.h
92781ad6265SDimitry AndricMEM_HEADERS+=	allocate_at_least.h
9286e75b2fbSDimitry AndricMEM_HEADERS+=	allocation_guard.h
9296e75b2fbSDimitry AndricMEM_HEADERS+=	allocator.h
9306e75b2fbSDimitry AndricMEM_HEADERS+=	allocator_arg_t.h
931bdd1243dSDimitry AndricMEM_HEADERS+=	allocator_destructor.h
932d409305fSDimitry AndricMEM_HEADERS+=	allocator_traits.h
93381ad6265SDimitry AndricMEM_HEADERS+=	assume_aligned.h
9346e75b2fbSDimitry AndricMEM_HEADERS+=	auto_ptr.h
935bdd1243dSDimitry AndricMEM_HEADERS+=	builtin_new_allocator.h
9366e75b2fbSDimitry AndricMEM_HEADERS+=	compressed_pair.h
93704eeddc0SDimitry AndricMEM_HEADERS+=	concepts.h
9386e75b2fbSDimitry AndricMEM_HEADERS+=	construct_at.h
939bdd1243dSDimitry AndricMEM_HEADERS+=	destruct_n.h
9400fca6ea1SDimitry AndricMEM_HEADERS+=	inout_ptr.h
9410fca6ea1SDimitry AndricMEM_HEADERS+=	out_ptr.h
942d409305fSDimitry AndricMEM_HEADERS+=	pointer_traits.h
94304eeddc0SDimitry AndricMEM_HEADERS+=	ranges_construct_at.h
94404eeddc0SDimitry AndricMEM_HEADERS+=	ranges_uninitialized_algorithms.h
9456e75b2fbSDimitry AndricMEM_HEADERS+=	raw_storage_iterator.h
9466e75b2fbSDimitry AndricMEM_HEADERS+=	shared_ptr.h
947972a253aSDimitry AndricMEM_HEADERS+=	swap_allocator.h
948bdd1243dSDimitry AndricMEM_HEADERS+=	temp_value.h
9496e75b2fbSDimitry AndricMEM_HEADERS+=	temporary_buffer.h
9506e75b2fbSDimitry AndricMEM_HEADERS+=	uninitialized_algorithms.h
9516e75b2fbSDimitry AndricMEM_HEADERS+=	unique_ptr.h
9526e75b2fbSDimitry AndricMEM_HEADERS+=	uses_allocator.h
953bdd1243dSDimitry AndricMEM_HEADERS+=	uses_allocator_construction.h
95404eeddc0SDimitry AndricMEM_HEADERS+=	voidify.h
955d409305fSDimitry Andric.for hdr in ${MEM_HEADERS}
956d409305fSDimitry AndricMEM+=		${HDRDIR}/__memory/${hdr}
957d409305fSDimitry Andric.endfor
958d409305fSDimitry Andric
959bdd1243dSDimitry AndricINCSGROUPS+=	MER
960bdd1243dSDimitry AndricMERDIR=		${CXXINCLUDEDIR}/__memory_resource
961bdd1243dSDimitry AndricMER_HEADERS+=	memory_resource.h
962bdd1243dSDimitry AndricMER_HEADERS+=	monotonic_buffer_resource.h
963bdd1243dSDimitry AndricMER_HEADERS+=	polymorphic_allocator.h
964bdd1243dSDimitry AndricMER_HEADERS+=	pool_options.h
965bdd1243dSDimitry AndricMER_HEADERS+=	synchronized_pool_resource.h
966bdd1243dSDimitry AndricMER_HEADERS+=	unsynchronized_pool_resource.h
967bdd1243dSDimitry Andric.for hdr in ${MER_HEADERS}
968bdd1243dSDimitry AndricMER+=		${HDRDIR}/__memory_resource/${hdr}
969bdd1243dSDimitry Andric.endfor
970bdd1243dSDimitry Andric
97106c3fb27SDimitry AndricINCSGROUPS+=	MUT
97206c3fb27SDimitry AndricMUTDIR=		${CXXINCLUDEDIR}/__mutex
97306c3fb27SDimitry AndricMUT_HEADERS+=	lock_guard.h
97406c3fb27SDimitry AndricMUT_HEADERS+=	mutex.h
9755f757f3fSDimitry AndricMUT_HEADERS+=	once_flag.h
97606c3fb27SDimitry AndricMUT_HEADERS+=	tag_types.h
97706c3fb27SDimitry AndricMUT_HEADERS+=	unique_lock.h
97806c3fb27SDimitry Andric.for hdr in ${MUT_HEADERS}
97906c3fb27SDimitry AndricMUT+=		${HDRDIR}/__mutex/${hdr}
98006c3fb27SDimitry Andric.endfor
98106c3fb27SDimitry Andric
9824824e7fdSDimitry AndricINCSGROUPS+=	NUM
9834824e7fdSDimitry AndricNUMDIR=		${CXXINCLUDEDIR}/__numeric
9844824e7fdSDimitry AndricNUM_HEADERS+=	accumulate.h
9854824e7fdSDimitry AndricNUM_HEADERS+=	adjacent_difference.h
9864824e7fdSDimitry AndricNUM_HEADERS+=	exclusive_scan.h
9874824e7fdSDimitry AndricNUM_HEADERS+=	gcd_lcm.h
9884824e7fdSDimitry AndricNUM_HEADERS+=	inclusive_scan.h
9894824e7fdSDimitry AndricNUM_HEADERS+=	inner_product.h
9904824e7fdSDimitry AndricNUM_HEADERS+=	iota.h
9914824e7fdSDimitry AndricNUM_HEADERS+=	midpoint.h
9924824e7fdSDimitry AndricNUM_HEADERS+=	partial_sum.h
9930fca6ea1SDimitry AndricNUM_HEADERS+=	pstl.h
9944824e7fdSDimitry AndricNUM_HEADERS+=	reduce.h
9957a6dacacSDimitry AndricNUM_HEADERS+=	saturation_arithmetic.h
9964824e7fdSDimitry AndricNUM_HEADERS+=	transform_exclusive_scan.h
9974824e7fdSDimitry AndricNUM_HEADERS+=	transform_inclusive_scan.h
9984824e7fdSDimitry AndricNUM_HEADERS+=	transform_reduce.h
9994824e7fdSDimitry Andric.for hdr in ${NUM_HEADERS}
10004824e7fdSDimitry AndricNUM+=		${HDRDIR}/__numeric/${hdr}
10014824e7fdSDimitry Andric.endfor
10024824e7fdSDimitry Andric
10030fca6ea1SDimitry AndricINCSGROUPS+=	OST
10040fca6ea1SDimitry AndricOSTDIR=		${CXXINCLUDEDIR}/__ostream
10050fca6ea1SDimitry AndricOST_HEADERS+=	basic_ostream.h
10060fca6ea1SDimitry AndricOST_HEADERS+=	print.h
10070fca6ea1SDimitry Andric.for hdr in ${OST_HEADERS}
10080fca6ea1SDimitry AndricOST+=		${HDRDIR}/__ostream/${hdr}
10090fca6ea1SDimitry Andric.endfor
10100fca6ea1SDimitry Andric
10110fca6ea1SDimitry AndricINCSGROUPS+=	PST
10120fca6ea1SDimitry AndricPSTDIR=		${CXXINCLUDEDIR}/__pstl
10130fca6ea1SDimitry AndricPST_HEADERS+=	backend.h
10140fca6ea1SDimitry AndricPST_HEADERS+=	backend_fwd.h
10150fca6ea1SDimitry AndricPST_HEADERS+=	dispatch.h
10160fca6ea1SDimitry AndricPST_HEADERS+=	handle_exception.h
10170fca6ea1SDimitry Andric.for hdr in ${PST_HEADERS}
10180fca6ea1SDimitry AndricPST+=		${HDRDIR}/__pstl/${hdr}
10190fca6ea1SDimitry Andric.endfor
10200fca6ea1SDimitry Andric
10210fca6ea1SDimitry AndricINCSGROUPS+=	PSB
10220fca6ea1SDimitry AndricPSBDIR=		${CXXINCLUDEDIR}/__pstl/backends
10230fca6ea1SDimitry AndricPSB_HEADERS+=	default.h
10240fca6ea1SDimitry AndricPSB_HEADERS+=	libdispatch.h
10250fca6ea1SDimitry AndricPSB_HEADERS+=	serial.h
10260fca6ea1SDimitry AndricPSB_HEADERS+=	std_thread.h
10270fca6ea1SDimitry Andric.for hdr in ${PSB_HEADERS}
10280fca6ea1SDimitry AndricPSB+=		${HDRDIR}/__pstl/backends/${hdr}
10290fca6ea1SDimitry Andric.endfor
10300fca6ea1SDimitry Andric
10310fca6ea1SDimitry AndricINCSGROUPS+=	PSC
10320fca6ea1SDimitry AndricPSCDIR=		${CXXINCLUDEDIR}/__pstl/cpu_algos
10330fca6ea1SDimitry AndricPSC_HEADERS+=	any_of.h
10340fca6ea1SDimitry AndricPSC_HEADERS+=	cpu_traits.h
10350fca6ea1SDimitry AndricPSC_HEADERS+=	fill.h
10360fca6ea1SDimitry AndricPSC_HEADERS+=	find_if.h
10370fca6ea1SDimitry AndricPSC_HEADERS+=	for_each.h
10380fca6ea1SDimitry AndricPSC_HEADERS+=	merge.h
10390fca6ea1SDimitry AndricPSC_HEADERS+=	stable_sort.h
10400fca6ea1SDimitry AndricPSC_HEADERS+=	transform.h
10410fca6ea1SDimitry AndricPSC_HEADERS+=	transform_reduce.h
10420fca6ea1SDimitry Andric.for hdr in ${PSC_HEADERS}
10430fca6ea1SDimitry AndricPSC+=		${HDRDIR}/__pstl/cpu_algos/${hdr}
10440fca6ea1SDimitry Andric.endfor
10450fca6ea1SDimitry Andric
10466e75b2fbSDimitry AndricINCSGROUPS+=	RND
10476e75b2fbSDimitry AndricRNDDIR=		${CXXINCLUDEDIR}/__random
10484824e7fdSDimitry AndricRND_HEADERS+=	bernoulli_distribution.h
10494824e7fdSDimitry AndricRND_HEADERS+=	binomial_distribution.h
10504824e7fdSDimitry AndricRND_HEADERS+=	cauchy_distribution.h
10514824e7fdSDimitry AndricRND_HEADERS+=	chi_squared_distribution.h
105204eeddc0SDimitry AndricRND_HEADERS+=	clamp_to_integral.h
10534824e7fdSDimitry AndricRND_HEADERS+=	default_random_engine.h
10544824e7fdSDimitry AndricRND_HEADERS+=	discard_block_engine.h
10554824e7fdSDimitry AndricRND_HEADERS+=	discrete_distribution.h
10564824e7fdSDimitry AndricRND_HEADERS+=	exponential_distribution.h
10574824e7fdSDimitry AndricRND_HEADERS+=	extreme_value_distribution.h
10584824e7fdSDimitry AndricRND_HEADERS+=	fisher_f_distribution.h
10594824e7fdSDimitry AndricRND_HEADERS+=	gamma_distribution.h
10604824e7fdSDimitry AndricRND_HEADERS+=	generate_canonical.h
10614824e7fdSDimitry AndricRND_HEADERS+=	geometric_distribution.h
10624824e7fdSDimitry AndricRND_HEADERS+=	independent_bits_engine.h
10634824e7fdSDimitry AndricRND_HEADERS+=	is_seed_sequence.h
106481ad6265SDimitry AndricRND_HEADERS+=	is_valid.h
10654824e7fdSDimitry AndricRND_HEADERS+=	knuth_b.h
10664824e7fdSDimitry AndricRND_HEADERS+=	linear_congruential_engine.h
10674824e7fdSDimitry AndricRND_HEADERS+=	log2.h
10684824e7fdSDimitry AndricRND_HEADERS+=	lognormal_distribution.h
10694824e7fdSDimitry AndricRND_HEADERS+=	mersenne_twister_engine.h
10704824e7fdSDimitry AndricRND_HEADERS+=	negative_binomial_distribution.h
10714824e7fdSDimitry AndricRND_HEADERS+=	normal_distribution.h
10724824e7fdSDimitry AndricRND_HEADERS+=	piecewise_constant_distribution.h
10734824e7fdSDimitry AndricRND_HEADERS+=	piecewise_linear_distribution.h
10744824e7fdSDimitry AndricRND_HEADERS+=	poisson_distribution.h
10754824e7fdSDimitry AndricRND_HEADERS+=	random_device.h
10764824e7fdSDimitry AndricRND_HEADERS+=	ranlux.h
10774824e7fdSDimitry AndricRND_HEADERS+=	seed_seq.h
10784824e7fdSDimitry AndricRND_HEADERS+=	shuffle_order_engine.h
10794824e7fdSDimitry AndricRND_HEADERS+=	student_t_distribution.h
10804824e7fdSDimitry AndricRND_HEADERS+=	subtract_with_carry_engine.h
10816e75b2fbSDimitry AndricRND_HEADERS+=	uniform_int_distribution.h
10824824e7fdSDimitry AndricRND_HEADERS+=	uniform_random_bit_generator.h
10834824e7fdSDimitry AndricRND_HEADERS+=	uniform_real_distribution.h
10844824e7fdSDimitry AndricRND_HEADERS+=	weibull_distribution.h
10856e75b2fbSDimitry Andric.for hdr in ${RND_HEADERS}
10866e75b2fbSDimitry AndricRND+=		${HDRDIR}/__random/${hdr}
10876e75b2fbSDimitry Andric.endfor
10886e75b2fbSDimitry Andric
10896e75b2fbSDimitry AndricINCSGROUPS+=	RNG
10906e75b2fbSDimitry AndricRNGDIR=		${CXXINCLUDEDIR}/__ranges
10916e75b2fbSDimitry AndricRNG_HEADERS+=	access.h
10926e75b2fbSDimitry AndricRNG_HEADERS+=	all.h
1093bdd1243dSDimitry AndricRNG_HEADERS+=	as_rvalue_view.h
10945f757f3fSDimitry AndricRNG_HEADERS+=	chunk_by_view.h
10956e75b2fbSDimitry AndricRNG_HEADERS+=	common_view.h
10966e75b2fbSDimitry AndricRNG_HEADERS+=	concepts.h
109706c3fb27SDimitry AndricRNG_HEADERS+=	container_compatible_range.h
10985e801ac6SDimitry AndricRNG_HEADERS+=	counted.h
10996e75b2fbSDimitry AndricRNG_HEADERS+=	dangling.h
11006e75b2fbSDimitry AndricRNG_HEADERS+=	data.h
11016e75b2fbSDimitry AndricRNG_HEADERS+=	drop_view.h
1102bdd1243dSDimitry AndricRNG_HEADERS+=	drop_while_view.h
1103bdd1243dSDimitry AndricRNG_HEADERS+=	elements_view.h
11046e75b2fbSDimitry AndricRNG_HEADERS+=	empty.h
11056e75b2fbSDimitry AndricRNG_HEADERS+=	empty_view.h
11066e75b2fbSDimitry AndricRNG_HEADERS+=	enable_borrowed_range.h
11076e75b2fbSDimitry AndricRNG_HEADERS+=	enable_view.h
110881ad6265SDimitry AndricRNG_HEADERS+=	filter_view.h
110906c3fb27SDimitry AndricRNG_HEADERS+=	from_range.h
11105e801ac6SDimitry AndricRNG_HEADERS+=	iota_view.h
1111bdd1243dSDimitry AndricRNG_HEADERS+=	istream_view.h
11125e801ac6SDimitry AndricRNG_HEADERS+=	join_view.h
111381ad6265SDimitry AndricRNG_HEADERS+=	lazy_split_view.h
111406c3fb27SDimitry AndricRNG_HEADERS+=	movable_box.h
11156e75b2fbSDimitry AndricRNG_HEADERS+=	non_propagating_cache.h
111604eeddc0SDimitry AndricRNG_HEADERS+=	owning_view.h
11175e801ac6SDimitry AndricRNG_HEADERS+=	range_adaptor.h
111881ad6265SDimitry AndricRNG_HEADERS+=	rbegin.h
11196e75b2fbSDimitry AndricRNG_HEADERS+=	ref_view.h
112081ad6265SDimitry AndricRNG_HEADERS+=	rend.h
112106c3fb27SDimitry AndricRNG_HEADERS+=	repeat_view.h
11225e801ac6SDimitry AndricRNG_HEADERS+=	reverse_view.h
11235e801ac6SDimitry AndricRNG_HEADERS+=	single_view.h
11246e75b2fbSDimitry AndricRNG_HEADERS+=	size.h
1125bdd1243dSDimitry AndricRNG_HEADERS+=	split_view.h
11266e75b2fbSDimitry AndricRNG_HEADERS+=	subrange.h
11275e801ac6SDimitry AndricRNG_HEADERS+=	take_view.h
1128bdd1243dSDimitry AndricRNG_HEADERS+=	take_while_view.h
112906c3fb27SDimitry AndricRNG_HEADERS+=	to.h
11306e75b2fbSDimitry AndricRNG_HEADERS+=	transform_view.h
11316e75b2fbSDimitry AndricRNG_HEADERS+=	view_interface.h
113253683b95SDimitry AndricRNG_HEADERS+=	views.h
113381ad6265SDimitry AndricRNG_HEADERS+=	zip_view.h
11346e75b2fbSDimitry Andric.for hdr in ${RNG_HEADERS}
11356e75b2fbSDimitry AndricRNG+=		${HDRDIR}/__ranges/${hdr}
11366e75b2fbSDimitry Andric.endfor
11376e75b2fbSDimitry Andric
113806c3fb27SDimitry AndricINCSGROUPS+=	STT
113906c3fb27SDimitry AndricSTTDIR=		${CXXINCLUDEDIR}/__stop_token
114006c3fb27SDimitry AndricSTT_HEADERS+=	atomic_unique_lock.h
114106c3fb27SDimitry AndricSTT_HEADERS+=	intrusive_list_view.h
114206c3fb27SDimitry AndricSTT_HEADERS+=	intrusive_shared_ptr.h
114306c3fb27SDimitry AndricSTT_HEADERS+=	stop_callback.h
114406c3fb27SDimitry AndricSTT_HEADERS+=	stop_source.h
114506c3fb27SDimitry AndricSTT_HEADERS+=	stop_state.h
114606c3fb27SDimitry AndricSTT_HEADERS+=	stop_token.h
114706c3fb27SDimitry Andric.for hdr in ${STT_HEADERS}
114806c3fb27SDimitry AndricSTT+=		${HDRDIR}/__stop_token/${hdr}
114906c3fb27SDimitry Andric.endfor
115006c3fb27SDimitry Andric
115181ad6265SDimitry AndricINCSGROUPS+=	STR
115281ad6265SDimitry AndricSTRDIR=		${CXXINCLUDEDIR}/__string
115381ad6265SDimitry AndricSTR_HEADERS+=	char_traits.h
115406c3fb27SDimitry AndricSTR_HEADERS+=	constexpr_c_functions.h
115581ad6265SDimitry AndricSTR_HEADERS+=	extern_template_lists.h
115681ad6265SDimitry Andric.for hdr in ${STR_HEADERS}
115781ad6265SDimitry AndricSTR+=		${HDRDIR}/__string/${hdr}
115881ad6265SDimitry Andric.endfor
115981ad6265SDimitry Andric
116006c3fb27SDimitry AndricINCSGROUPS+=	SER
116106c3fb27SDimitry AndricSERDIR=		${CXXINCLUDEDIR}/__system_error
116206c3fb27SDimitry AndricSER_HEADERS+=	errc.h
116306c3fb27SDimitry AndricSER_HEADERS+=	error_category.h
116406c3fb27SDimitry AndricSER_HEADERS+=	error_code.h
116506c3fb27SDimitry AndricSER_HEADERS+=	error_condition.h
116606c3fb27SDimitry AndricSER_HEADERS+=	system_error.h
116706c3fb27SDimitry Andric.for hdr in ${SER_HEADERS}
116806c3fb27SDimitry AndricSER+=		${HDRDIR}/__system_error/${hdr}
116906c3fb27SDimitry Andric.endfor
117006c3fb27SDimitry Andric
11715e801ac6SDimitry AndricINCSGROUPS+=	THR
11725e801ac6SDimitry AndricTHRDIR=		${CXXINCLUDEDIR}/__thread
117306c3fb27SDimitry AndricTHR_HEADERS+=	formatter.h
117406c3fb27SDimitry AndricTHR_HEADERS+=	id.h
11755f757f3fSDimitry AndricTHR_HEADERS+=	jthread.h
11765e801ac6SDimitry AndricTHR_HEADERS+=	poll_with_backoff.h
11770fca6ea1SDimitry AndricTHR_HEADERS+=	support.h
117806c3fb27SDimitry AndricTHR_HEADERS+=	this_thread.h
117906c3fb27SDimitry AndricTHR_HEADERS+=	thread.h
118004eeddc0SDimitry AndricTHR_HEADERS+=	timed_backoff_policy.h
11815e801ac6SDimitry Andric.for hdr in ${THR_HEADERS}
11825e801ac6SDimitry AndricTHR+=		${HDRDIR}/__thread/${hdr}
11835e801ac6SDimitry Andric.endfor
11845e801ac6SDimitry Andric
11850fca6ea1SDimitry AndricINCSGROUPS+=	THS
11860fca6ea1SDimitry AndricTHSDIR=		${CXXINCLUDEDIR}/__thread/support
11870fca6ea1SDimitry AndricTHS_HEADERS+=	c11.h
11880fca6ea1SDimitry AndricTHS_HEADERS+=	external.h
11890fca6ea1SDimitry AndricTHS_HEADERS+=	pthread.h
11900fca6ea1SDimitry AndricTHS_HEADERS+=	windows.h
11910fca6ea1SDimitry Andric.for hdr in ${THS_HEADERS}
11920fca6ea1SDimitry AndricTHS+=		${HDRDIR}/__thread/support/${hdr}
11930fca6ea1SDimitry Andric.endfor
11940fca6ea1SDimitry Andric
1195bdd1243dSDimitry AndricINCSGROUPS+=	TUP
119606c3fb27SDimitry AndricTUPDIR=		${CXXINCLUDEDIR}/__tuple
11970fca6ea1SDimitry AndricTUP_HEADERS+=	find_index.h
11980fca6ea1SDimitry AndricTUP_HEADERS+=	ignore.h
1199bdd1243dSDimitry AndricTUP_HEADERS+=	make_tuple_types.h
1200bdd1243dSDimitry AndricTUP_HEADERS+=	sfinae_helpers.h
1201bdd1243dSDimitry AndricTUP_HEADERS+=	tuple_element.h
1202bdd1243dSDimitry AndricTUP_HEADERS+=	tuple_indices.h
1203bdd1243dSDimitry AndricTUP_HEADERS+=	tuple_like.h
1204bdd1243dSDimitry AndricTUP_HEADERS+=	tuple_like_ext.h
12050fca6ea1SDimitry AndricTUP_HEADERS+=	tuple_like_no_subrange.h
1206bdd1243dSDimitry AndricTUP_HEADERS+=	tuple_size.h
1207bdd1243dSDimitry AndricTUP_HEADERS+=	tuple_types.h
1208bdd1243dSDimitry Andric.for hdr in ${TUP_HEADERS}
120906c3fb27SDimitry AndricTUP+=		${HDRDIR}/__tuple/${hdr}
1210bdd1243dSDimitry Andric.endfor
1211bdd1243dSDimitry Andric
121281ad6265SDimitry AndricINCSGROUPS+=	TTR
121381ad6265SDimitry AndricTTRDIR=		${CXXINCLUDEDIR}/__type_traits
121481ad6265SDimitry AndricTTR_HEADERS+=	add_const.h
121581ad6265SDimitry AndricTTR_HEADERS+=	add_cv.h
121681ad6265SDimitry AndricTTR_HEADERS+=	add_lvalue_reference.h
121781ad6265SDimitry AndricTTR_HEADERS+=	add_pointer.h
121881ad6265SDimitry AndricTTR_HEADERS+=	add_rvalue_reference.h
121981ad6265SDimitry AndricTTR_HEADERS+=	add_volatile.h
1220972a253aSDimitry AndricTTR_HEADERS+=	aligned_storage.h
1221972a253aSDimitry AndricTTR_HEADERS+=	aligned_union.h
122281ad6265SDimitry AndricTTR_HEADERS+=	alignment_of.h
1223bdd1243dSDimitry AndricTTR_HEADERS+=	can_extract_key.h
1224972a253aSDimitry AndricTTR_HEADERS+=	common_reference.h
1225972a253aSDimitry AndricTTR_HEADERS+=	common_type.h
122681ad6265SDimitry AndricTTR_HEADERS+=	conditional.h
122781ad6265SDimitry AndricTTR_HEADERS+=	conjunction.h
1228972a253aSDimitry AndricTTR_HEADERS+=	copy_cv.h
1229972a253aSDimitry AndricTTR_HEADERS+=	copy_cvref.h
123006c3fb27SDimitry AndricTTR_HEADERS+=	datasizeof.h
123181ad6265SDimitry AndricTTR_HEADERS+=	decay.h
1232bdd1243dSDimitry AndricTTR_HEADERS+=	dependent_type.h
12330fca6ea1SDimitry AndricTTR_HEADERS+=	desugars_to.h
123481ad6265SDimitry AndricTTR_HEADERS+=	disjunction.h
123581ad6265SDimitry AndricTTR_HEADERS+=	enable_if.h
123681ad6265SDimitry AndricTTR_HEADERS+=	extent.h
123781ad6265SDimitry AndricTTR_HEADERS+=	has_unique_object_representation.h
123881ad6265SDimitry AndricTTR_HEADERS+=	has_virtual_destructor.h
123981ad6265SDimitry AndricTTR_HEADERS+=	integral_constant.h
124006c3fb27SDimitry AndricTTR_HEADERS+=	invoke.h
124181ad6265SDimitry AndricTTR_HEADERS+=	is_abstract.h
124281ad6265SDimitry AndricTTR_HEADERS+=	is_aggregate.h
1243bdd1243dSDimitry AndricTTR_HEADERS+=	is_allocator.h
1244bdd1243dSDimitry AndricTTR_HEADERS+=	is_always_bitcastable.h
124581ad6265SDimitry AndricTTR_HEADERS+=	is_arithmetic.h
124681ad6265SDimitry AndricTTR_HEADERS+=	is_array.h
124781ad6265SDimitry AndricTTR_HEADERS+=	is_assignable.h
124881ad6265SDimitry AndricTTR_HEADERS+=	is_base_of.h
124981ad6265SDimitry AndricTTR_HEADERS+=	is_bounded_array.h
125081ad6265SDimitry AndricTTR_HEADERS+=	is_callable.h
1251bdd1243dSDimitry AndricTTR_HEADERS+=	is_char_like_type.h
125281ad6265SDimitry AndricTTR_HEADERS+=	is_class.h
125381ad6265SDimitry AndricTTR_HEADERS+=	is_compound.h
125481ad6265SDimitry AndricTTR_HEADERS+=	is_const.h
125581ad6265SDimitry AndricTTR_HEADERS+=	is_constant_evaluated.h
125681ad6265SDimitry AndricTTR_HEADERS+=	is_constructible.h
125781ad6265SDimitry AndricTTR_HEADERS+=	is_convertible.h
125881ad6265SDimitry AndricTTR_HEADERS+=	is_core_convertible.h
125981ad6265SDimitry AndricTTR_HEADERS+=	is_destructible.h
126081ad6265SDimitry AndricTTR_HEADERS+=	is_empty.h
126181ad6265SDimitry AndricTTR_HEADERS+=	is_enum.h
126206c3fb27SDimitry AndricTTR_HEADERS+=	is_equality_comparable.h
126306c3fb27SDimitry AndricTTR_HEADERS+=	is_execution_policy.h
126481ad6265SDimitry AndricTTR_HEADERS+=	is_final.h
126581ad6265SDimitry AndricTTR_HEADERS+=	is_floating_point.h
126681ad6265SDimitry AndricTTR_HEADERS+=	is_function.h
126781ad6265SDimitry AndricTTR_HEADERS+=	is_fundamental.h
1268bdd1243dSDimitry AndricTTR_HEADERS+=	is_implicitly_default_constructible.h
126981ad6265SDimitry AndricTTR_HEADERS+=	is_integral.h
127081ad6265SDimitry AndricTTR_HEADERS+=	is_literal_type.h
12712e861daaSDimitry AndricTTR_HEADERS+=	is_member_function_pointer.h
12722e861daaSDimitry AndricTTR_HEADERS+=	is_member_object_pointer.h
127381ad6265SDimitry AndricTTR_HEADERS+=	is_member_pointer.h
127481ad6265SDimitry AndricTTR_HEADERS+=	is_nothrow_assignable.h
127581ad6265SDimitry AndricTTR_HEADERS+=	is_nothrow_constructible.h
1276972a253aSDimitry AndricTTR_HEADERS+=	is_nothrow_convertible.h
127781ad6265SDimitry AndricTTR_HEADERS+=	is_nothrow_destructible.h
127881ad6265SDimitry AndricTTR_HEADERS+=	is_null_pointer.h
127981ad6265SDimitry AndricTTR_HEADERS+=	is_object.h
128081ad6265SDimitry AndricTTR_HEADERS+=	is_pod.h
128181ad6265SDimitry AndricTTR_HEADERS+=	is_pointer.h
128281ad6265SDimitry AndricTTR_HEADERS+=	is_polymorphic.h
1283972a253aSDimitry AndricTTR_HEADERS+=	is_primary_template.h
128481ad6265SDimitry AndricTTR_HEADERS+=	is_reference.h
128581ad6265SDimitry AndricTTR_HEADERS+=	is_reference_wrapper.h
128681ad6265SDimitry AndricTTR_HEADERS+=	is_referenceable.h
128781ad6265SDimitry AndricTTR_HEADERS+=	is_same.h
128881ad6265SDimitry AndricTTR_HEADERS+=	is_scalar.h
12892e861daaSDimitry AndricTTR_HEADERS+=	is_scoped_enum.h
129081ad6265SDimitry AndricTTR_HEADERS+=	is_signed.h
1291972a253aSDimitry AndricTTR_HEADERS+=	is_signed_integer.h
1292bdd1243dSDimitry AndricTTR_HEADERS+=	is_specialization.h
129381ad6265SDimitry AndricTTR_HEADERS+=	is_standard_layout.h
1294bdd1243dSDimitry AndricTTR_HEADERS+=	is_swappable.h
129581ad6265SDimitry AndricTTR_HEADERS+=	is_trivial.h
129681ad6265SDimitry AndricTTR_HEADERS+=	is_trivially_assignable.h
129781ad6265SDimitry AndricTTR_HEADERS+=	is_trivially_constructible.h
129881ad6265SDimitry AndricTTR_HEADERS+=	is_trivially_copyable.h
129981ad6265SDimitry AndricTTR_HEADERS+=	is_trivially_destructible.h
130006c3fb27SDimitry AndricTTR_HEADERS+=	is_trivially_lexicographically_comparable.h
13010fca6ea1SDimitry AndricTTR_HEADERS+=	is_trivially_relocatable.h
130281ad6265SDimitry AndricTTR_HEADERS+=	is_unbounded_array.h
130381ad6265SDimitry AndricTTR_HEADERS+=	is_union.h
130481ad6265SDimitry AndricTTR_HEADERS+=	is_unsigned.h
1305972a253aSDimitry AndricTTR_HEADERS+=	is_unsigned_integer.h
1306972a253aSDimitry AndricTTR_HEADERS+=	is_valid_expansion.h
130781ad6265SDimitry AndricTTR_HEADERS+=	is_void.h
130881ad6265SDimitry AndricTTR_HEADERS+=	is_volatile.h
1309972a253aSDimitry AndricTTR_HEADERS+=	lazy.h
1310972a253aSDimitry AndricTTR_HEADERS+=	make_32_64_or_128_bit.h
1311bdd1243dSDimitry AndricTTR_HEADERS+=	make_const_lvalue_ref.h
1312972a253aSDimitry AndricTTR_HEADERS+=	make_signed.h
1313972a253aSDimitry AndricTTR_HEADERS+=	make_unsigned.h
1314bdd1243dSDimitry AndricTTR_HEADERS+=	maybe_const.h
1315972a253aSDimitry AndricTTR_HEADERS+=	nat.h
131681ad6265SDimitry AndricTTR_HEADERS+=	negation.h
1317bdd1243dSDimitry AndricTTR_HEADERS+=	noexcept_move_assign_container.h
1318972a253aSDimitry AndricTTR_HEADERS+=	promote.h
131981ad6265SDimitry AndricTTR_HEADERS+=	rank.h
132081ad6265SDimitry AndricTTR_HEADERS+=	remove_all_extents.h
132181ad6265SDimitry AndricTTR_HEADERS+=	remove_const.h
1322bdd1243dSDimitry AndricTTR_HEADERS+=	remove_const_ref.h
132381ad6265SDimitry AndricTTR_HEADERS+=	remove_cv.h
1324972a253aSDimitry AndricTTR_HEADERS+=	remove_cvref.h
132581ad6265SDimitry AndricTTR_HEADERS+=	remove_extent.h
132681ad6265SDimitry AndricTTR_HEADERS+=	remove_pointer.h
132781ad6265SDimitry AndricTTR_HEADERS+=	remove_reference.h
132881ad6265SDimitry AndricTTR_HEADERS+=	remove_volatile.h
1329bdd1243dSDimitry AndricTTR_HEADERS+=	result_of.h
1330bdd1243dSDimitry AndricTTR_HEADERS+=	strip_signature.h
133181ad6265SDimitry AndricTTR_HEADERS+=	type_identity.h
1332972a253aSDimitry AndricTTR_HEADERS+=	type_list.h
133381ad6265SDimitry AndricTTR_HEADERS+=	underlying_type.h
133406c3fb27SDimitry AndricTTR_HEADERS+=	unwrap_ref.h
133581ad6265SDimitry AndricTTR_HEADERS+=	void_t.h
133681ad6265SDimitry Andric.for hdr in ${TTR_HEADERS}
133781ad6265SDimitry AndricTTR+=		${HDRDIR}/__type_traits/${hdr}
133881ad6265SDimitry Andric.endfor
133981ad6265SDimitry Andric
13406e75b2fbSDimitry AndricINCSGROUPS+=	UTL
13416e75b2fbSDimitry AndricUTLDIR=		${CXXINCLUDEDIR}/__utility
13426e75b2fbSDimitry AndricUTL_HEADERS+=	as_const.h
13435f757f3fSDimitry AndricUTL_HEADERS+=	as_lvalue.h
134404eeddc0SDimitry AndricUTL_HEADERS+=	auto_cast.h
13456e75b2fbSDimitry AndricUTL_HEADERS+=	cmp.h
1346bdd1243dSDimitry AndricUTL_HEADERS+=	convert_to_integral.h
13476e75b2fbSDimitry AndricUTL_HEADERS+=	declval.h
13485f757f3fSDimitry AndricUTL_HEADERS+=	empty.h
1349bdd1243dSDimitry AndricUTL_HEADERS+=	exception_guard.h
13506e75b2fbSDimitry AndricUTL_HEADERS+=	exchange.h
13516e75b2fbSDimitry AndricUTL_HEADERS+=	forward.h
1352bdd1243dSDimitry AndricUTL_HEADERS+=	forward_like.h
13536e75b2fbSDimitry AndricUTL_HEADERS+=	in_place.h
13546e75b2fbSDimitry AndricUTL_HEADERS+=	integer_sequence.h
135506c3fb27SDimitry AndricUTL_HEADERS+=	is_pointer_in_range.h
13560fca6ea1SDimitry AndricUTL_HEADERS+=	is_valid_range.h
13576e75b2fbSDimitry AndricUTL_HEADERS+=	move.h
13585f757f3fSDimitry AndricUTL_HEADERS+=	no_destroy.h
13596e75b2fbSDimitry AndricUTL_HEADERS+=	pair.h
13606e75b2fbSDimitry AndricUTL_HEADERS+=	piecewise_construct.h
13614824e7fdSDimitry AndricUTL_HEADERS+=	priority_tag.h
13620fca6ea1SDimitry AndricUTL_HEADERS+=	private_constructor_tag.h
13636e75b2fbSDimitry AndricUTL_HEADERS+=	rel_ops.h
13645f757f3fSDimitry AndricUTL_HEADERS+=	small_buffer.h
13656e75b2fbSDimitry AndricUTL_HEADERS+=	swap.h
13666e75b2fbSDimitry AndricUTL_HEADERS+=	to_underlying.h
136781ad6265SDimitry AndricUTL_HEADERS+=	unreachable.h
13686e75b2fbSDimitry Andric.for hdr in ${UTL_HEADERS}
13696e75b2fbSDimitry AndricUTL+=		${HDRDIR}/__utility/${hdr}
13706e75b2fbSDimitry Andric.endfor
13716e75b2fbSDimitry Andric
13726e75b2fbSDimitry AndricINCSGROUPS+=	VAR
13736e75b2fbSDimitry AndricVARDIR=	${CXXINCLUDEDIR}/__variant
13744824e7fdSDimitry AndricVAR_HEADERS+=	monostate.h
13756e75b2fbSDimitry Andric.for hdr in ${VAR_HEADERS}
13766e75b2fbSDimitry AndricVAR+=		${HDRDIR}/__variant/${hdr}
13776e75b2fbSDimitry Andric.endfor
13786e75b2fbSDimitry Andric
13796e75b2fbSDimitry AndricINCSGROUPS+=	EXP
13806e75b2fbSDimitry AndricEXPDIR=		${CXXINCLUDEDIR}/experimental
13813f910b91SDimitry AndricEXP_HEADERS+=	__config
13823f910b91SDimitry AndricEXP_HEADERS+=	iterator
13835f757f3fSDimitry AndricEXP_HEADERS+=	memory
13843f910b91SDimitry AndricEXP_HEADERS+=	propagate_const
1385488aa40aSDimitry AndricEXP_HEADERS+=	simd
13863f910b91SDimitry AndricEXP_HEADERS+=	type_traits
13873f910b91SDimitry AndricEXP_HEADERS+=	utility
13884f7ab58eSDimitry Andric.for hdr in ${EXP_HEADERS}
13894f7ab58eSDimitry AndricEXP+=		${HDRDIR}/experimental/${hdr}
13904f7ab58eSDimitry Andric.endfor
13914f7ab58eSDimitry Andric
13925f757f3fSDimitry AndricINCSGROUPS+=	EXS
13935f757f3fSDimitry AndricEXSDIR=		${CXXINCLUDEDIR}/experimental/__simd
13945f757f3fSDimitry AndricEXS_HEADERS+=	aligned_tag.h
13955f757f3fSDimitry AndricEXS_HEADERS+=	declaration.h
13965f757f3fSDimitry AndricEXS_HEADERS+=	reference.h
13975f757f3fSDimitry AndricEXS_HEADERS+=	scalar.h
13985f757f3fSDimitry AndricEXS_HEADERS+=	simd.h
13995f757f3fSDimitry AndricEXS_HEADERS+=	simd_mask.h
14005f757f3fSDimitry AndricEXS_HEADERS+=	traits.h
14015f757f3fSDimitry AndricEXS_HEADERS+=	utility.h
14025f757f3fSDimitry AndricEXS_HEADERS+=	vec_ext.h
14035f757f3fSDimitry Andric.for hdr in ${EXS_HEADERS}
14045f757f3fSDimitry AndricEXS+=		${HDRDIR}/experimental/__simd/${hdr}
14055f757f3fSDimitry Andric.endfor
14065f757f3fSDimitry Andric
14076e75b2fbSDimitry AndricINCSGROUPS+=	EXT
14086e75b2fbSDimitry AndricEXTDIR=		${CXXINCLUDEDIR}/ext
14093f910b91SDimitry AndricEXT_HEADERS+=	__hash
14103f910b91SDimitry AndricEXT_HEADERS+=	hash_map
14113f910b91SDimitry AndricEXT_HEADERS+=	hash_set
14127a984708SDavid Chisnall.for hdr in ${EXT_HEADERS}
14137a984708SDavid ChisnallEXT+=		${HDRDIR}/ext/${hdr}
14147a984708SDavid Chisnall.endfor
14157a984708SDavid Chisnall
14167a984708SDavid Chisnall.include <bsd.lib.mk>
1417