xref: /freebsd-13.1/lib/libc++/Makefile (revision b2127b6f)
17a984708SDavid Chisnall# $FreeBSD$
27a984708SDavid Chisnall
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
22488aa40aSDimitry AndricSRCS+=		charconv.cpp
233f910b91SDimitry AndricSRCS+=		chrono.cpp
243f910b91SDimitry AndricSRCS+=		condition_variable.cpp
25b0d4288fSDimitry AndricSRCS+=		condition_variable_destructor.cpp
263f910b91SDimitry AndricSRCS+=		debug.cpp
273f910b91SDimitry AndricSRCS+=		exception.cpp
28b0d4288fSDimitry AndricSRCS+=		filesystem/directory_iterator.cpp
29b0d4288fSDimitry AndricSRCS+=		filesystem/int128_builtins.cpp
30b0d4288fSDimitry AndricSRCS+=		filesystem/operations.cpp
31*2e2f8eacSDimitry AndricSRCS+=		format.cpp
32540d2a8bSDimitry AndricSRCS+=		functional.cpp
333f910b91SDimitry AndricSRCS+=		future.cpp
343f910b91SDimitry AndricSRCS+=		hash.cpp
353f910b91SDimitry AndricSRCS+=		ios.cpp
36af732203SDimitry AndricSRCS+=		ios.instantiations.cpp
373f910b91SDimitry AndricSRCS+=		iostream.cpp
383f910b91SDimitry AndricSRCS+=		locale.cpp
393f910b91SDimitry AndricSRCS+=		memory.cpp
403f910b91SDimitry AndricSRCS+=		mutex.cpp
41b0d4288fSDimitry AndricSRCS+=		mutex_destructor.cpp
423f910b91SDimitry AndricSRCS+=		new.cpp
433f910b91SDimitry AndricSRCS+=		optional.cpp
443f910b91SDimitry AndricSRCS+=		random.cpp
45c37f312dSDimitry AndricSRCS+=		random_shuffle.cpp
463f910b91SDimitry AndricSRCS+=		regex.cpp
473f910b91SDimitry AndricSRCS+=		shared_mutex.cpp
483f910b91SDimitry AndricSRCS+=		stdexcept.cpp
493f910b91SDimitry AndricSRCS+=		string.cpp
503f910b91SDimitry AndricSRCS+=		strstream.cpp
513f910b91SDimitry AndricSRCS+=		system_error.cpp
523f910b91SDimitry AndricSRCS+=		thread.cpp
533f910b91SDimitry AndricSRCS+=		typeinfo.cpp
543f910b91SDimitry AndricSRCS+=		utility.cpp
553f910b91SDimitry AndricSRCS+=		valarray.cpp
565d77776cSDimitry AndricSRCS+=		variant.cpp
5724d58133SDimitry AndricSRCS+=		vector.cpp
587a984708SDavid Chisnall
593f910b91SDimitry AndricCXXRT_SRCS+=	auxhelper.cc
603f910b91SDimitry AndricCXXRT_SRCS+=	dynamic_cast.cc
613f910b91SDimitry AndricCXXRT_SRCS+=	exception.cc
623f910b91SDimitry AndricCXXRT_SRCS+=	guard.cc
633f910b91SDimitry AndricCXXRT_SRCS+=	libelftc_dem_gnu3.c
643f910b91SDimitry AndricCXXRT_SRCS+=	memory.cc
653f910b91SDimitry AndricCXXRT_SRCS+=	stdexcept.cc
663f910b91SDimitry AndricCXXRT_SRCS+=	terminate.cc
673f910b91SDimitry AndricCXXRT_SRCS+=	typeinfo.cc
6815e154dfSDimitry Andric
6915e154dfSDimitry Andric.for _S in ${CXXRT_SRCS}
707533aa15SBryan DreweryCLEANFILES+=	cxxrt_${_S}
7115e154dfSDimitry AndricSTATICOBJS+=	cxxrt_${_S:R}.o
723c89d6b0SBryan Drewerycxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
73b791fbe6SBryan Drewery	ln -sf ${.ALLSRC} ${.TARGET}
7415e154dfSDimitry Andric.endfor
7515e154dfSDimitry Andric
76ecebb3ccSKyle EvansWARNS?=		0
77*2e2f8eacSDimitry AndricCFLAGS+=	-isystem ${.CURDIR}
78302affcbSDimitry AndricCFLAGS+=	-isystem ${HDRDIR}
79302affcbSDimitry AndricCFLAGS+=	-isystem ${_LIBCXXRTDIR}
80302affcbSDimitry AndricCFLAGS+=	-nostdinc++
81302affcbSDimitry AndricCFLAGS+=	-nostdlib
82302affcbSDimitry AndricCFLAGS+=	-D_LIBCPP_BUILDING_LIBRARY
83302affcbSDimitry AndricCFLAGS+=	-DLIBCXXRT
8497e6bc16SDimitry AndricCFLAGS+=	-ffunction-sections
8597e6bc16SDimitry AndricCFLAGS+=	-fdata-sections
8697e6bc16SDimitry AndricCXXSTD?=	c++14
877a984708SDavid Chisnall
886b129086SBaptiste DaroussinLIBADD+=	cxxrt
897a984708SDavid Chisnall
90*2e2f8eacSDimitry AndricINCSGROUPS+=	STD
91*2e2f8eacSDimitry AndricSTDDIR=		${CXXINCLUDEDIR}
92af732203SDimitry AndricSTD_HEADERS+=	__availability
933f910b91SDimitry AndricSTD_HEADERS+=	__bit_reference
94af732203SDimitry AndricSTD_HEADERS+=	__bits
953f910b91SDimitry AndricSTD_HEADERS+=	__bsd_locale_defaults.h
963f910b91SDimitry AndricSTD_HEADERS+=	__bsd_locale_fallbacks.h
97*2e2f8eacSDimitry AndricSTD_HEADERS+=	__config
983f910b91SDimitry AndricSTD_HEADERS+=	__debug
99488aa40aSDimitry AndricSTD_HEADERS+=	__errc
100*2e2f8eacSDimitry AndricSTD_HEADERS+=	__function_like.h
1013f910b91SDimitry AndricSTD_HEADERS+=	__functional_base
1023f910b91SDimitry AndricSTD_HEADERS+=	__hash_table
1033f910b91SDimitry AndricSTD_HEADERS+=	__libcpp_version
1043f910b91SDimitry AndricSTD_HEADERS+=	__locale
1053f910b91SDimitry AndricSTD_HEADERS+=	__mutex_base
106488aa40aSDimitry AndricSTD_HEADERS+=	__node_handle
1073f910b91SDimitry AndricSTD_HEADERS+=	__nullptr
1083f910b91SDimitry AndricSTD_HEADERS+=	__split_buffer
1093f910b91SDimitry AndricSTD_HEADERS+=	__std_stream
1103f910b91SDimitry AndricSTD_HEADERS+=	__string
1113f910b91SDimitry AndricSTD_HEADERS+=	__threading_support
1123f910b91SDimitry AndricSTD_HEADERS+=	__tree
1133f910b91SDimitry AndricSTD_HEADERS+=	__tuple
114f9448bf3SDimitry AndricSTD_HEADERS+=	__undef_macros
1153f910b91SDimitry AndricSTD_HEADERS+=	algorithm
1163f910b91SDimitry AndricSTD_HEADERS+=	any
1173f910b91SDimitry AndricSTD_HEADERS+=	array
1183f910b91SDimitry AndricSTD_HEADERS+=	atomic
11970e13c4cSDimitry AndricSTD_HEADERS+=	barrier
12058a7b5d6SDimitry AndricSTD_HEADERS+=	bit
1213f910b91SDimitry AndricSTD_HEADERS+=	bitset
1223f910b91SDimitry AndricSTD_HEADERS+=	cassert
1233f910b91SDimitry AndricSTD_HEADERS+=	ccomplex
1243f910b91SDimitry AndricSTD_HEADERS+=	cctype
1253f910b91SDimitry AndricSTD_HEADERS+=	cerrno
1263f910b91SDimitry AndricSTD_HEADERS+=	cfenv
1273f910b91SDimitry AndricSTD_HEADERS+=	cfloat
128488aa40aSDimitry AndricSTD_HEADERS+=	charconv
1293f910b91SDimitry AndricSTD_HEADERS+=	chrono
1303f910b91SDimitry AndricSTD_HEADERS+=	cinttypes
1313f910b91SDimitry AndricSTD_HEADERS+=	ciso646
1323f910b91SDimitry AndricSTD_HEADERS+=	climits
1333f910b91SDimitry AndricSTD_HEADERS+=	clocale
1343f910b91SDimitry AndricSTD_HEADERS+=	cmath
1353f910b91SDimitry AndricSTD_HEADERS+=	codecvt
136488aa40aSDimitry AndricSTD_HEADERS+=	compare
1373f910b91SDimitry AndricSTD_HEADERS+=	complex
1383f910b91SDimitry AndricSTD_HEADERS+=	complex.h
13970e13c4cSDimitry AndricSTD_HEADERS+=	concepts
1403f910b91SDimitry AndricSTD_HEADERS+=	condition_variable
1413f910b91SDimitry AndricSTD_HEADERS+=	csetjmp
1423f910b91SDimitry AndricSTD_HEADERS+=	csignal
1433f910b91SDimitry AndricSTD_HEADERS+=	cstdarg
1443f910b91SDimitry AndricSTD_HEADERS+=	cstdbool
1453f910b91SDimitry AndricSTD_HEADERS+=	cstddef
1463f910b91SDimitry AndricSTD_HEADERS+=	cstdint
1473f910b91SDimitry AndricSTD_HEADERS+=	cstdio
1483f910b91SDimitry AndricSTD_HEADERS+=	cstdlib
1493f910b91SDimitry AndricSTD_HEADERS+=	cstring
1503f910b91SDimitry AndricSTD_HEADERS+=	ctgmath
1513f910b91SDimitry AndricSTD_HEADERS+=	ctime
1523f910b91SDimitry AndricSTD_HEADERS+=	ctype.h
1533f910b91SDimitry AndricSTD_HEADERS+=	cwchar
1543f910b91SDimitry AndricSTD_HEADERS+=	cwctype
1553f910b91SDimitry AndricSTD_HEADERS+=	deque
1563f910b91SDimitry AndricSTD_HEADERS+=	errno.h
1573f910b91SDimitry AndricSTD_HEADERS+=	exception
15870e13c4cSDimitry AndricSTD_HEADERS+=	execution
159b0d4288fSDimitry AndricSTD_HEADERS+=	fenv.h
160488aa40aSDimitry AndricSTD_HEADERS+=	filesystem
1613f910b91SDimitry AndricSTD_HEADERS+=	float.h
162*2e2f8eacSDimitry AndricSTD_HEADERS+=	format
1633f910b91SDimitry AndricSTD_HEADERS+=	forward_list
1643f910b91SDimitry AndricSTD_HEADERS+=	fstream
1653f910b91SDimitry AndricSTD_HEADERS+=	functional
1663f910b91SDimitry AndricSTD_HEADERS+=	future
1673f910b91SDimitry AndricSTD_HEADERS+=	initializer_list
1683f910b91SDimitry AndricSTD_HEADERS+=	inttypes.h
1693f910b91SDimitry AndricSTD_HEADERS+=	iomanip
1703f910b91SDimitry AndricSTD_HEADERS+=	ios
1713f910b91SDimitry AndricSTD_HEADERS+=	iosfwd
1723f910b91SDimitry AndricSTD_HEADERS+=	iostream
1733f910b91SDimitry AndricSTD_HEADERS+=	istream
1743f910b91SDimitry AndricSTD_HEADERS+=	iterator
17570e13c4cSDimitry AndricSTD_HEADERS+=	latch
1763f910b91SDimitry AndricSTD_HEADERS+=	limits
1773f910b91SDimitry AndricSTD_HEADERS+=	limits.h
1783f910b91SDimitry AndricSTD_HEADERS+=	list
1793f910b91SDimitry AndricSTD_HEADERS+=	locale
1803f910b91SDimitry AndricSTD_HEADERS+=	locale.h
1813f910b91SDimitry AndricSTD_HEADERS+=	map
1823f910b91SDimitry AndricSTD_HEADERS+=	math.h
1833f910b91SDimitry AndricSTD_HEADERS+=	memory
184*2e2f8eacSDimitry AndricSTD_HEADERS+=	module.modulemap
1853f910b91SDimitry AndricSTD_HEADERS+=	mutex
1863f910b91SDimitry AndricSTD_HEADERS+=	new
18770e13c4cSDimitry AndricSTD_HEADERS+=	numbers
1883f910b91SDimitry AndricSTD_HEADERS+=	numeric
1893f910b91SDimitry AndricSTD_HEADERS+=	optional
1903f910b91SDimitry AndricSTD_HEADERS+=	ostream
1913f910b91SDimitry AndricSTD_HEADERS+=	queue
1923f910b91SDimitry AndricSTD_HEADERS+=	random
193*2e2f8eacSDimitry AndricSTD_HEADERS+=	ranges
1943f910b91SDimitry AndricSTD_HEADERS+=	ratio
1953f910b91SDimitry AndricSTD_HEADERS+=	regex
1963f910b91SDimitry AndricSTD_HEADERS+=	scoped_allocator
19770e13c4cSDimitry AndricSTD_HEADERS+=	semaphore
1983f910b91SDimitry AndricSTD_HEADERS+=	set
1993f910b91SDimitry AndricSTD_HEADERS+=	setjmp.h
2003f910b91SDimitry AndricSTD_HEADERS+=	shared_mutex
201488aa40aSDimitry AndricSTD_HEADERS+=	span
2023f910b91SDimitry AndricSTD_HEADERS+=	sstream
2033f910b91SDimitry AndricSTD_HEADERS+=	stack
2043f910b91SDimitry AndricSTD_HEADERS+=	stdbool.h
2053f910b91SDimitry AndricSTD_HEADERS+=	stddef.h
2063f910b91SDimitry AndricSTD_HEADERS+=	stdexcept
2073f910b91SDimitry AndricSTD_HEADERS+=	stdint.h
2083f910b91SDimitry AndricSTD_HEADERS+=	stdio.h
2093f910b91SDimitry AndricSTD_HEADERS+=	stdlib.h
2103f910b91SDimitry AndricSTD_HEADERS+=	streambuf
2113f910b91SDimitry AndricSTD_HEADERS+=	string
2123f910b91SDimitry AndricSTD_HEADERS+=	string.h
2133f910b91SDimitry AndricSTD_HEADERS+=	string_view
2143f910b91SDimitry AndricSTD_HEADERS+=	strstream
2153f910b91SDimitry AndricSTD_HEADERS+=	system_error
2163f910b91SDimitry AndricSTD_HEADERS+=	tgmath.h
2173f910b91SDimitry AndricSTD_HEADERS+=	thread
2183f910b91SDimitry AndricSTD_HEADERS+=	tuple
2193f910b91SDimitry AndricSTD_HEADERS+=	type_traits
2203f910b91SDimitry AndricSTD_HEADERS+=	typeindex
2213f910b91SDimitry AndricSTD_HEADERS+=	typeinfo
2223f910b91SDimitry AndricSTD_HEADERS+=	unordered_map
2233f910b91SDimitry AndricSTD_HEADERS+=	unordered_set
2243f910b91SDimitry AndricSTD_HEADERS+=	utility
2253f910b91SDimitry AndricSTD_HEADERS+=	valarray
2263f910b91SDimitry AndricSTD_HEADERS+=	variant
2273f910b91SDimitry AndricSTD_HEADERS+=	vector
228488aa40aSDimitry AndricSTD_HEADERS+=	version
2293f910b91SDimitry AndricSTD_HEADERS+=	wchar.h
2303f910b91SDimitry AndricSTD_HEADERS+=	wctype.h
231*2e2f8eacSDimitry Andric.for hdr in ${STD_HEADERS}
232*2e2f8eacSDimitry AndricSTD+=		${HDRDIR}/${hdr}
233*2e2f8eacSDimitry Andric.endfor
234*2e2f8eacSDimitry Andric
235*2e2f8eacSDimitry Andric# Special case for __config_site, which as of libc++ 12.0.0 is generated by
236*2e2f8eacSDimitry Andric# CMake, and as of 13.0.0 installed side-by-side with__config.
237*2e2f8eacSDimitry AndricSTD+=		${.CURDIR}/__config_site
2383f910b91SDimitry Andric
2393f910b91SDimitry AndricRT_HEADERS+=	cxxabi.h
240cd38c408SDimitry Andric.for hdr in ${RT_HEADERS}
2413c89d6b0SBryan DrewerySTD+=		${_LIBCXXRTDIR}/${hdr}
242cd38c408SDimitry Andric.endfor
2437a984708SDavid Chisnall
244*2e2f8eacSDimitry AndricINCSGROUPS+=	ALG
245*2e2f8eacSDimitry AndricALGDIR=		${CXXINCLUDEDIR}/__algorithm
246*2e2f8eacSDimitry AndricALG_HEADERS+=	adjacent_find.h
247*2e2f8eacSDimitry AndricALG_HEADERS+=	all_of.h
248*2e2f8eacSDimitry AndricALG_HEADERS+=	any_of.h
249*2e2f8eacSDimitry AndricALG_HEADERS+=	binary_search.h
250*2e2f8eacSDimitry AndricALG_HEADERS+=	clamp.h
251*2e2f8eacSDimitry AndricALG_HEADERS+=	comp.h
252*2e2f8eacSDimitry AndricALG_HEADERS+=	comp_ref_type.h
253*2e2f8eacSDimitry AndricALG_HEADERS+=	copy.h
254*2e2f8eacSDimitry AndricALG_HEADERS+=	copy_backward.h
255*2e2f8eacSDimitry AndricALG_HEADERS+=	copy_if.h
256*2e2f8eacSDimitry AndricALG_HEADERS+=	copy_n.h
257*2e2f8eacSDimitry AndricALG_HEADERS+=	count.h
258*2e2f8eacSDimitry AndricALG_HEADERS+=	count_if.h
259*2e2f8eacSDimitry AndricALG_HEADERS+=	equal.h
260*2e2f8eacSDimitry AndricALG_HEADERS+=	equal_range.h
261*2e2f8eacSDimitry AndricALG_HEADERS+=	fill.h
262*2e2f8eacSDimitry AndricALG_HEADERS+=	fill_n.h
263*2e2f8eacSDimitry AndricALG_HEADERS+=	find.h
264*2e2f8eacSDimitry AndricALG_HEADERS+=	find_end.h
265*2e2f8eacSDimitry AndricALG_HEADERS+=	find_first_of.h
266*2e2f8eacSDimitry AndricALG_HEADERS+=	find_if.h
267*2e2f8eacSDimitry AndricALG_HEADERS+=	find_if_not.h
268*2e2f8eacSDimitry AndricALG_HEADERS+=	for_each.h
269*2e2f8eacSDimitry AndricALG_HEADERS+=	for_each_n.h
270*2e2f8eacSDimitry AndricALG_HEADERS+=	generate.h
271*2e2f8eacSDimitry AndricALG_HEADERS+=	generate_n.h
272*2e2f8eacSDimitry AndricALG_HEADERS+=	half_positive.h
273*2e2f8eacSDimitry AndricALG_HEADERS+=	includes.h
274*2e2f8eacSDimitry AndricALG_HEADERS+=	inplace_merge.h
275*2e2f8eacSDimitry AndricALG_HEADERS+=	is_heap.h
276*2e2f8eacSDimitry AndricALG_HEADERS+=	is_heap_until.h
277*2e2f8eacSDimitry AndricALG_HEADERS+=	is_partitioned.h
278*2e2f8eacSDimitry AndricALG_HEADERS+=	is_permutation.h
279*2e2f8eacSDimitry AndricALG_HEADERS+=	is_sorted.h
280*2e2f8eacSDimitry AndricALG_HEADERS+=	is_sorted_until.h
281*2e2f8eacSDimitry AndricALG_HEADERS+=	iter_swap.h
282*2e2f8eacSDimitry AndricALG_HEADERS+=	lexicographical_compare.h
283*2e2f8eacSDimitry AndricALG_HEADERS+=	lower_bound.h
284*2e2f8eacSDimitry AndricALG_HEADERS+=	make_heap.h
285*2e2f8eacSDimitry AndricALG_HEADERS+=	max.h
286*2e2f8eacSDimitry AndricALG_HEADERS+=	max_element.h
287*2e2f8eacSDimitry AndricALG_HEADERS+=	merge.h
288*2e2f8eacSDimitry AndricALG_HEADERS+=	min.h
289*2e2f8eacSDimitry AndricALG_HEADERS+=	min_element.h
290*2e2f8eacSDimitry AndricALG_HEADERS+=	minmax.h
291*2e2f8eacSDimitry AndricALG_HEADERS+=	minmax_element.h
292*2e2f8eacSDimitry AndricALG_HEADERS+=	mismatch.h
293*2e2f8eacSDimitry AndricALG_HEADERS+=	move.h
294*2e2f8eacSDimitry AndricALG_HEADERS+=	move_backward.h
295*2e2f8eacSDimitry AndricALG_HEADERS+=	next_permutation.h
296*2e2f8eacSDimitry AndricALG_HEADERS+=	none_of.h
297*2e2f8eacSDimitry AndricALG_HEADERS+=	nth_element.h
298*2e2f8eacSDimitry AndricALG_HEADERS+=	partial_sort.h
299*2e2f8eacSDimitry AndricALG_HEADERS+=	partial_sort_copy.h
300*2e2f8eacSDimitry AndricALG_HEADERS+=	partition.h
301*2e2f8eacSDimitry AndricALG_HEADERS+=	partition_copy.h
302*2e2f8eacSDimitry AndricALG_HEADERS+=	partition_point.h
303*2e2f8eacSDimitry AndricALG_HEADERS+=	pop_heap.h
304*2e2f8eacSDimitry AndricALG_HEADERS+=	prev_permutation.h
305*2e2f8eacSDimitry AndricALG_HEADERS+=	push_heap.h
306*2e2f8eacSDimitry AndricALG_HEADERS+=	remove.h
307*2e2f8eacSDimitry AndricALG_HEADERS+=	remove_copy.h
308*2e2f8eacSDimitry AndricALG_HEADERS+=	remove_copy_if.h
309*2e2f8eacSDimitry AndricALG_HEADERS+=	remove_if.h
310*2e2f8eacSDimitry AndricALG_HEADERS+=	replace.h
311*2e2f8eacSDimitry AndricALG_HEADERS+=	replace_copy.h
312*2e2f8eacSDimitry AndricALG_HEADERS+=	replace_copy_if.h
313*2e2f8eacSDimitry AndricALG_HEADERS+=	replace_if.h
314*2e2f8eacSDimitry AndricALG_HEADERS+=	reverse.h
315*2e2f8eacSDimitry AndricALG_HEADERS+=	reverse_copy.h
316*2e2f8eacSDimitry AndricALG_HEADERS+=	rotate.h
317*2e2f8eacSDimitry AndricALG_HEADERS+=	rotate_copy.h
318*2e2f8eacSDimitry AndricALG_HEADERS+=	sample.h
319*2e2f8eacSDimitry AndricALG_HEADERS+=	search.h
320*2e2f8eacSDimitry AndricALG_HEADERS+=	search_n.h
321*2e2f8eacSDimitry AndricALG_HEADERS+=	set_difference.h
322*2e2f8eacSDimitry AndricALG_HEADERS+=	set_intersection.h
323*2e2f8eacSDimitry AndricALG_HEADERS+=	set_symmetric_difference.h
324*2e2f8eacSDimitry AndricALG_HEADERS+=	set_union.h
325*2e2f8eacSDimitry AndricALG_HEADERS+=	shift_left.h
326*2e2f8eacSDimitry AndricALG_HEADERS+=	shift_right.h
327*2e2f8eacSDimitry AndricALG_HEADERS+=	shuffle.h
328*2e2f8eacSDimitry AndricALG_HEADERS+=	sift_down.h
329*2e2f8eacSDimitry AndricALG_HEADERS+=	sort.h
330*2e2f8eacSDimitry AndricALG_HEADERS+=	sort_heap.h
331*2e2f8eacSDimitry AndricALG_HEADERS+=	stable_partition.h
332*2e2f8eacSDimitry AndricALG_HEADERS+=	stable_sort.h
333*2e2f8eacSDimitry AndricALG_HEADERS+=	swap_ranges.h
334*2e2f8eacSDimitry AndricALG_HEADERS+=	transform.h
335*2e2f8eacSDimitry AndricALG_HEADERS+=	unique.h
336*2e2f8eacSDimitry AndricALG_HEADERS+=	unique_copy.h
337*2e2f8eacSDimitry AndricALG_HEADERS+=	unwrap_iter.h
338*2e2f8eacSDimitry AndricALG_HEADERS+=	upper_bound.h
339*2e2f8eacSDimitry Andric.for hdr in ${ALG_HEADERS}
340*2e2f8eacSDimitry AndricALG+=		${HDRDIR}/__algorithm/${hdr}
341*2e2f8eacSDimitry Andric.endfor
342af732203SDimitry Andric
343*2e2f8eacSDimitry AndricINCSGROUPS+=	FMT
344*2e2f8eacSDimitry AndricFMTDIR=		${CXXINCLUDEDIR}/__format
345*2e2f8eacSDimitry AndricFMT_HEADERS+=	format_error.h
346*2e2f8eacSDimitry AndricFMT_HEADERS+=	format_parse_context.h
347*2e2f8eacSDimitry Andric.for hdr in ${FMT_HEADERS}
348*2e2f8eacSDimitry AndricFMT+=		${HDRDIR}/__format/${hdr}
349*2e2f8eacSDimitry Andric.endfor
350af732203SDimitry Andric
351*2e2f8eacSDimitry AndricINCSGROUPS+=	FUN
352*2e2f8eacSDimitry AndricFUNDIR=		${CXXINCLUDEDIR}/__functional
353*2e2f8eacSDimitry AndricFUN_HEADERS+=	binary_function.h
354*2e2f8eacSDimitry AndricFUN_HEADERS+=	binary_negate.h
355*2e2f8eacSDimitry AndricFUN_HEADERS+=	bind.h
356*2e2f8eacSDimitry AndricFUN_HEADERS+=	bind_front.h
357*2e2f8eacSDimitry AndricFUN_HEADERS+=	binder1st.h
358*2e2f8eacSDimitry AndricFUN_HEADERS+=	binder2nd.h
359*2e2f8eacSDimitry AndricFUN_HEADERS+=	default_searcher.h
360*2e2f8eacSDimitry AndricFUN_HEADERS+=	function.h
361*2e2f8eacSDimitry AndricFUN_HEADERS+=	hash.h
362*2e2f8eacSDimitry AndricFUN_HEADERS+=	identity.h
363*2e2f8eacSDimitry AndricFUN_HEADERS+=	invoke.h
364*2e2f8eacSDimitry AndricFUN_HEADERS+=	is_transparent.h
365*2e2f8eacSDimitry AndricFUN_HEADERS+=	mem_fn.h
366*2e2f8eacSDimitry AndricFUN_HEADERS+=	mem_fun_ref.h
367*2e2f8eacSDimitry AndricFUN_HEADERS+=	not_fn.h
368*2e2f8eacSDimitry AndricFUN_HEADERS+=	operations.h
369*2e2f8eacSDimitry AndricFUN_HEADERS+=	perfect_forward.h
370*2e2f8eacSDimitry AndricFUN_HEADERS+=	pointer_to_binary_function.h
371*2e2f8eacSDimitry AndricFUN_HEADERS+=	pointer_to_unary_function.h
372*2e2f8eacSDimitry AndricFUN_HEADERS+=	ranges_operations.h
373*2e2f8eacSDimitry AndricFUN_HEADERS+=	reference_wrapper.h
374*2e2f8eacSDimitry AndricFUN_HEADERS+=	unary_function.h
375*2e2f8eacSDimitry AndricFUN_HEADERS+=	unary_negate.h
376*2e2f8eacSDimitry AndricFUN_HEADERS+=	unwrap_ref.h
377*2e2f8eacSDimitry AndricFUN_HEADERS+=	weak_result_type.h
378*2e2f8eacSDimitry Andric.for hdr in ${FUN_HEADERS}
379*2e2f8eacSDimitry AndricFUN+=		${HDRDIR}/__functional/${hdr}
380*2e2f8eacSDimitry Andric.endfor
381*2e2f8eacSDimitry Andric
382*2e2f8eacSDimitry AndricINCSGROUPS+=	IT
383*2e2f8eacSDimitry AndricITDIR=		${CXXINCLUDEDIR}/__iterator
384*2e2f8eacSDimitry AndricIT_HEADERS+=	access.h
385*2e2f8eacSDimitry AndricIT_HEADERS+=	advance.h
386*2e2f8eacSDimitry AndricIT_HEADERS+=	back_insert_iterator.h
387*2e2f8eacSDimitry AndricIT_HEADERS+=	common_iterator.h
388*2e2f8eacSDimitry AndricIT_HEADERS+=	concepts.h
389*2e2f8eacSDimitry AndricIT_HEADERS+=	counted_iterator.h
390*2e2f8eacSDimitry AndricIT_HEADERS+=	data.h
391*2e2f8eacSDimitry AndricIT_HEADERS+=	default_sentinel.h
392*2e2f8eacSDimitry AndricIT_HEADERS+=	distance.h
393*2e2f8eacSDimitry AndricIT_HEADERS+=	empty.h
394*2e2f8eacSDimitry AndricIT_HEADERS+=	erase_if_container.h
395*2e2f8eacSDimitry AndricIT_HEADERS+=	front_insert_iterator.h
396*2e2f8eacSDimitry AndricIT_HEADERS+=	incrementable_traits.h
397*2e2f8eacSDimitry AndricIT_HEADERS+=	insert_iterator.h
398*2e2f8eacSDimitry AndricIT_HEADERS+=	istream_iterator.h
399*2e2f8eacSDimitry AndricIT_HEADERS+=	istreambuf_iterator.h
400*2e2f8eacSDimitry AndricIT_HEADERS+=	iter_move.h
401*2e2f8eacSDimitry AndricIT_HEADERS+=	iter_swap.h
402*2e2f8eacSDimitry AndricIT_HEADERS+=	iterator.h
403*2e2f8eacSDimitry AndricIT_HEADERS+=	iterator_traits.h
404*2e2f8eacSDimitry AndricIT_HEADERS+=	move_iterator.h
405*2e2f8eacSDimitry AndricIT_HEADERS+=	next.h
406*2e2f8eacSDimitry AndricIT_HEADERS+=	ostream_iterator.h
407*2e2f8eacSDimitry AndricIT_HEADERS+=	ostreambuf_iterator.h
408*2e2f8eacSDimitry AndricIT_HEADERS+=	prev.h
409*2e2f8eacSDimitry AndricIT_HEADERS+=	projected.h
410*2e2f8eacSDimitry AndricIT_HEADERS+=	readable_traits.h
411*2e2f8eacSDimitry AndricIT_HEADERS+=	reverse_access.h
412*2e2f8eacSDimitry AndricIT_HEADERS+=	reverse_iterator.h
413*2e2f8eacSDimitry AndricIT_HEADERS+=	size.h
414*2e2f8eacSDimitry AndricIT_HEADERS+=	wrap_iter.h
415*2e2f8eacSDimitry Andric.for hdr in ${IT_HEADERS}
416*2e2f8eacSDimitry AndricIT+=		${HDRDIR}/__iterator/${hdr}
417*2e2f8eacSDimitry Andric.endfor
418*2e2f8eacSDimitry Andric
419*2e2f8eacSDimitry AndricINCSGROUPS+=	MEM
420*2e2f8eacSDimitry AndricMEMDIR=		${CXXINCLUDEDIR}/__memory
421*2e2f8eacSDimitry AndricMEM_HEADERS+=	addressof.h
422*2e2f8eacSDimitry AndricMEM_HEADERS+=	allocation_guard.h
423*2e2f8eacSDimitry AndricMEM_HEADERS+=	allocator.h
424*2e2f8eacSDimitry AndricMEM_HEADERS+=	allocator_arg_t.h
425af732203SDimitry AndricMEM_HEADERS+=	allocator_traits.h
426*2e2f8eacSDimitry AndricMEM_HEADERS+=	auto_ptr.h
427*2e2f8eacSDimitry AndricMEM_HEADERS+=	compressed_pair.h
428*2e2f8eacSDimitry AndricMEM_HEADERS+=	construct_at.h
429*2e2f8eacSDimitry AndricMEM_HEADERS+=	pointer_safety.h
430af732203SDimitry AndricMEM_HEADERS+=	pointer_traits.h
431*2e2f8eacSDimitry AndricMEM_HEADERS+=	raw_storage_iterator.h
432*2e2f8eacSDimitry AndricMEM_HEADERS+=	shared_ptr.h
433*2e2f8eacSDimitry AndricMEM_HEADERS+=	temporary_buffer.h
434*2e2f8eacSDimitry AndricMEM_HEADERS+=	uninitialized_algorithms.h
435*2e2f8eacSDimitry AndricMEM_HEADERS+=	unique_ptr.h
436*2e2f8eacSDimitry AndricMEM_HEADERS+=	uses_allocator.h
437af732203SDimitry Andric.for hdr in ${MEM_HEADERS}
438af732203SDimitry AndricMEM+=		${HDRDIR}/__memory/${hdr}
439af732203SDimitry Andric.endfor
440af732203SDimitry Andric
441*2e2f8eacSDimitry AndricINCSGROUPS+=	RND
442*2e2f8eacSDimitry AndricRNDDIR=		${CXXINCLUDEDIR}/__random
443*2e2f8eacSDimitry AndricRND_HEADERS+=	uniform_int_distribution.h
444*2e2f8eacSDimitry Andric.for hdr in ${RND_HEADERS}
445*2e2f8eacSDimitry AndricRND+=		${HDRDIR}/__random/${hdr}
446*2e2f8eacSDimitry Andric.endfor
447*2e2f8eacSDimitry Andric
448*2e2f8eacSDimitry AndricINCSGROUPS+=	RNG
449*2e2f8eacSDimitry AndricRNGDIR=		${CXXINCLUDEDIR}/__ranges
450*2e2f8eacSDimitry AndricRNG_HEADERS+=	access.h
451*2e2f8eacSDimitry AndricRNG_HEADERS+=	all.h
452*2e2f8eacSDimitry AndricRNG_HEADERS+=	common_view.h
453*2e2f8eacSDimitry AndricRNG_HEADERS+=	concepts.h
454*2e2f8eacSDimitry AndricRNG_HEADERS+=	copyable_box.h
455*2e2f8eacSDimitry AndricRNG_HEADERS+=	dangling.h
456*2e2f8eacSDimitry AndricRNG_HEADERS+=	data.h
457*2e2f8eacSDimitry AndricRNG_HEADERS+=	drop_view.h
458*2e2f8eacSDimitry AndricRNG_HEADERS+=	empty.h
459*2e2f8eacSDimitry AndricRNG_HEADERS+=	empty_view.h
460*2e2f8eacSDimitry AndricRNG_HEADERS+=	enable_borrowed_range.h
461*2e2f8eacSDimitry AndricRNG_HEADERS+=	enable_view.h
462*2e2f8eacSDimitry AndricRNG_HEADERS+=	non_propagating_cache.h
463*2e2f8eacSDimitry AndricRNG_HEADERS+=	ref_view.h
464*2e2f8eacSDimitry AndricRNG_HEADERS+=	size.h
465*2e2f8eacSDimitry AndricRNG_HEADERS+=	subrange.h
466*2e2f8eacSDimitry AndricRNG_HEADERS+=	transform_view.h
467*2e2f8eacSDimitry AndricRNG_HEADERS+=	view_interface.h
468*2e2f8eacSDimitry Andric.for hdr in ${RNG_HEADERS}
469*2e2f8eacSDimitry AndricRNG+=		${HDRDIR}/__ranges/${hdr}
470*2e2f8eacSDimitry Andric.endfor
471*2e2f8eacSDimitry Andric
472*2e2f8eacSDimitry AndricINCSGROUPS+=	UTL
473*2e2f8eacSDimitry AndricUTLDIR=		${CXXINCLUDEDIR}/__utility
474*2e2f8eacSDimitry AndricUTL_HEADERS+=	__decay_copy.h
475*2e2f8eacSDimitry AndricUTL_HEADERS+=	as_const.h
476*2e2f8eacSDimitry AndricUTL_HEADERS+=	cmp.h
477*2e2f8eacSDimitry AndricUTL_HEADERS+=	declval.h
478*2e2f8eacSDimitry AndricUTL_HEADERS+=	exchange.h
479*2e2f8eacSDimitry AndricUTL_HEADERS+=	forward.h
480*2e2f8eacSDimitry AndricUTL_HEADERS+=	in_place.h
481*2e2f8eacSDimitry AndricUTL_HEADERS+=	integer_sequence.h
482*2e2f8eacSDimitry AndricUTL_HEADERS+=	move.h
483*2e2f8eacSDimitry AndricUTL_HEADERS+=	pair.h
484*2e2f8eacSDimitry AndricUTL_HEADERS+=	piecewise_construct.h
485*2e2f8eacSDimitry AndricUTL_HEADERS+=	rel_ops.h
486*2e2f8eacSDimitry AndricUTL_HEADERS+=	swap.h
487*2e2f8eacSDimitry AndricUTL_HEADERS+=	to_underlying.h
488*2e2f8eacSDimitry Andric.for hdr in ${UTL_HEADERS}
489*2e2f8eacSDimitry AndricUTL+=		${HDRDIR}/__utility/${hdr}
490*2e2f8eacSDimitry Andric.endfor
491*2e2f8eacSDimitry Andric
492*2e2f8eacSDimitry AndricINCSGROUPS+=	VAR
493*2e2f8eacSDimitry AndricVAR_HEADERS+=	monostate.h
494*2e2f8eacSDimitry AndricVARDIR=	${CXXINCLUDEDIR}/__variant
495*2e2f8eacSDimitry Andric.for hdr in ${VAR_HEADERS}
496*2e2f8eacSDimitry AndricVAR+=		${HDRDIR}/__variant/${hdr}
497*2e2f8eacSDimitry Andric.endfor
498*2e2f8eacSDimitry Andric
499*2e2f8eacSDimitry AndricINCSGROUPS+=	EXP
500*2e2f8eacSDimitry AndricEXPDIR=		${CXXINCLUDEDIR}/experimental
5013f910b91SDimitry AndricEXP_HEADERS+=	__config
5023f910b91SDimitry AndricEXP_HEADERS+=	__memory
5033f910b91SDimitry AndricEXP_HEADERS+=	algorithm
504302affcbSDimitry AndricEXP_HEADERS+=	coroutine
5053f910b91SDimitry AndricEXP_HEADERS+=	deque
5063f910b91SDimitry AndricEXP_HEADERS+=	filesystem
5073f910b91SDimitry AndricEXP_HEADERS+=	forward_list
5083f910b91SDimitry AndricEXP_HEADERS+=	functional
5093f910b91SDimitry AndricEXP_HEADERS+=	iterator
5103f910b91SDimitry AndricEXP_HEADERS+=	list
5113f910b91SDimitry AndricEXP_HEADERS+=	map
5123f910b91SDimitry AndricEXP_HEADERS+=	memory_resource
5133f910b91SDimitry AndricEXP_HEADERS+=	propagate_const
5143f910b91SDimitry AndricEXP_HEADERS+=	regex
5153f910b91SDimitry AndricEXP_HEADERS+=	set
516488aa40aSDimitry AndricEXP_HEADERS+=	simd
5173f910b91SDimitry AndricEXP_HEADERS+=	string
5183f910b91SDimitry AndricEXP_HEADERS+=	type_traits
5193f910b91SDimitry AndricEXP_HEADERS+=	unordered_map
5203f910b91SDimitry AndricEXP_HEADERS+=	unordered_set
5213f910b91SDimitry AndricEXP_HEADERS+=	utility
5223f910b91SDimitry AndricEXP_HEADERS+=	vector
5234f7ab58eSDimitry Andric.for hdr in ${EXP_HEADERS}
5244f7ab58eSDimitry AndricEXP+=		${HDRDIR}/experimental/${hdr}
5254f7ab58eSDimitry Andric.endfor
5264f7ab58eSDimitry Andric
527*2e2f8eacSDimitry AndricINCSGROUPS+=	EXT
528*2e2f8eacSDimitry AndricEXTDIR=		${CXXINCLUDEDIR}/ext
5293f910b91SDimitry AndricEXT_HEADERS+=	__hash
5303f910b91SDimitry AndricEXT_HEADERS+=	hash_map
5313f910b91SDimitry AndricEXT_HEADERS+=	hash_set
5327a984708SDavid Chisnall.for hdr in ${EXT_HEADERS}
5337a984708SDavid ChisnallEXT+=		${HDRDIR}/ext/${hdr}
5347a984708SDavid Chisnall.endfor
5357a984708SDavid Chisnall
5367a984708SDavid Chisnall.include <bsd.lib.mk>
537