1# $FreeBSD$ 2 3SHLIBDIR?= /lib 4 5.include <src.opts.mk> 6 7PACKAGE= clibs 8_LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt 9HDRDIR= ${SRCTOP}/contrib/llvm-project/libcxx/include 10SRCDIR= ${SRCTOP}/contrib/llvm-project/libcxx/src 11CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR} 12 13.PATH: ${SRCDIR} 14 15LIB= c++ 16SHLIB_MAJOR= 1 17SHLIB_LDSCRIPT= libc++.ldscript 18 19SRCS+= algorithm.cpp 20SRCS+= any.cpp 21SRCS+= assert.cpp 22SRCS+= atomic.cpp 23SRCS+= barrier.cpp 24SRCS+= bind.cpp 25SRCS+= charconv.cpp 26SRCS+= chrono.cpp 27SRCS+= condition_variable.cpp 28SRCS+= condition_variable_destructor.cpp 29SRCS+= debug.cpp 30SRCS+= exception.cpp 31SRCS+= filesystem/directory_iterator.cpp 32SRCS+= filesystem/int128_builtins.cpp 33SRCS+= filesystem/operations.cpp 34SRCS+= format.cpp 35SRCS+= functional.cpp 36SRCS+= future.cpp 37SRCS+= hash.cpp 38SRCS+= ios.cpp 39SRCS+= ios.instantiations.cpp 40SRCS+= iostream.cpp 41SRCS+= legacy_debug_handler.cpp 42SRCS+= legacy_pointer_safety.cpp 43SRCS+= locale.cpp 44SRCS+= memory.cpp 45SRCS+= mutex.cpp 46SRCS+= mutex_destructor.cpp 47SRCS+= new.cpp 48SRCS+= optional.cpp 49SRCS+= random.cpp 50SRCS+= random_shuffle.cpp 51SRCS+= regex.cpp 52SRCS+= ryu/d2fixed.cpp 53SRCS+= ryu/d2s.cpp 54SRCS+= ryu/f2s.cpp 55SRCS+= shared_mutex.cpp 56SRCS+= stdexcept.cpp 57SRCS+= string.cpp 58SRCS+= strstream.cpp 59SRCS+= system_error.cpp 60SRCS+= thread.cpp 61SRCS+= typeinfo.cpp 62SRCS+= utility.cpp 63SRCS+= valarray.cpp 64SRCS+= variant.cpp 65SRCS+= vector.cpp 66 67CXXRT_SRCS+= auxhelper.cc 68CXXRT_SRCS+= dynamic_cast.cc 69CXXRT_SRCS+= exception.cc 70CXXRT_SRCS+= guard.cc 71CXXRT_SRCS+= libelftc_dem_gnu3.c 72CXXRT_SRCS+= memory.cc 73CXXRT_SRCS+= stdexcept.cc 74CXXRT_SRCS+= terminate.cc 75CXXRT_SRCS+= typeinfo.cc 76 77.for _S in ${CXXRT_SRCS} 78CLEANFILES+= cxxrt_${_S} 79STATICOBJS+= cxxrt_${_S:R}.o 80cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA 81 ln -sf ${.ALLSRC} ${.TARGET} 82.endfor 83 84WARNS?= 0 85CFLAGS+= -isystem ${.CURDIR} 86CFLAGS+= -isystem ${HDRDIR} 87CFLAGS+= -isystem ${SRCDIR} 88CFLAGS+= -isystem ${_LIBCXXRTDIR} 89CFLAGS+= -nostdinc++ 90CFLAGS+= -nostdlib 91CFLAGS+= -D_LIBCPP_BUILDING_LIBRARY 92CFLAGS+= -DLIBCXXRT 93CFLAGS+= -ffunction-sections 94CFLAGS+= -fdata-sections 95CXXSTD?= c++20 96 97LIBADD+= cxxrt 98 99INCSGROUPS+= STD 100STDDIR= ${CXXINCLUDEDIR} 101STD_HEADERS+= __assert 102STD_HEADERS+= __availability 103STD_HEADERS+= __bit_reference 104STD_HEADERS+= __bits 105STD_HEADERS+= __bsd_locale_defaults.h 106STD_HEADERS+= __bsd_locale_fallbacks.h 107STD_HEADERS+= __config 108STD_HEADERS+= __debug 109STD_HEADERS+= __errc 110STD_HEADERS+= __hash_table 111STD_HEADERS+= __locale 112STD_HEADERS+= __mbstate_t.h 113STD_HEADERS+= __mutex_base 114STD_HEADERS+= __node_handle 115STD_HEADERS+= __split_buffer 116STD_HEADERS+= __std_stream 117STD_HEADERS+= __threading_support 118STD_HEADERS+= __tree 119STD_HEADERS+= __tuple 120STD_HEADERS+= __undef_macros 121STD_HEADERS+= algorithm 122STD_HEADERS+= any 123STD_HEADERS+= array 124STD_HEADERS+= atomic 125STD_HEADERS+= barrier 126STD_HEADERS+= bit 127STD_HEADERS+= bitset 128STD_HEADERS+= cassert 129STD_HEADERS+= ccomplex 130STD_HEADERS+= cctype 131STD_HEADERS+= cerrno 132STD_HEADERS+= cfenv 133STD_HEADERS+= cfloat 134STD_HEADERS+= charconv 135STD_HEADERS+= chrono 136STD_HEADERS+= cinttypes 137STD_HEADERS+= ciso646 138STD_HEADERS+= climits 139STD_HEADERS+= clocale 140STD_HEADERS+= cmath 141STD_HEADERS+= codecvt 142STD_HEADERS+= compare 143STD_HEADERS+= complex 144STD_HEADERS+= complex.h 145STD_HEADERS+= concepts 146STD_HEADERS+= condition_variable 147STD_HEADERS+= coroutine 148STD_HEADERS+= csetjmp 149STD_HEADERS+= csignal 150STD_HEADERS+= cstdarg 151STD_HEADERS+= cstdbool 152STD_HEADERS+= cstddef 153STD_HEADERS+= cstdint 154STD_HEADERS+= cstdio 155STD_HEADERS+= cstdlib 156STD_HEADERS+= cstring 157STD_HEADERS+= ctgmath 158STD_HEADERS+= ctime 159STD_HEADERS+= ctype.h 160STD_HEADERS+= cuchar 161STD_HEADERS+= cwchar 162STD_HEADERS+= cwctype 163STD_HEADERS+= deque 164STD_HEADERS+= errno.h 165STD_HEADERS+= exception 166STD_HEADERS+= execution 167STD_HEADERS+= fenv.h 168STD_HEADERS+= filesystem 169STD_HEADERS+= float.h 170STD_HEADERS+= format 171STD_HEADERS+= forward_list 172STD_HEADERS+= fstream 173STD_HEADERS+= functional 174STD_HEADERS+= future 175STD_HEADERS+= initializer_list 176STD_HEADERS+= inttypes.h 177STD_HEADERS+= iomanip 178STD_HEADERS+= ios 179STD_HEADERS+= iosfwd 180STD_HEADERS+= iostream 181STD_HEADERS+= istream 182STD_HEADERS+= iterator 183STD_HEADERS+= latch 184STD_HEADERS+= limits 185STD_HEADERS+= limits.h 186STD_HEADERS+= list 187STD_HEADERS+= locale 188STD_HEADERS+= locale.h 189STD_HEADERS+= map 190STD_HEADERS+= math.h 191STD_HEADERS+= memory 192STD_HEADERS+= mutex 193STD_HEADERS+= new 194STD_HEADERS+= numbers 195STD_HEADERS+= numeric 196STD_HEADERS+= optional 197STD_HEADERS+= ostream 198STD_HEADERS+= queue 199STD_HEADERS+= random 200STD_HEADERS+= ranges 201STD_HEADERS+= ratio 202STD_HEADERS+= regex 203STD_HEADERS+= scoped_allocator 204STD_HEADERS+= semaphore 205STD_HEADERS+= set 206STD_HEADERS+= setjmp.h 207STD_HEADERS+= shared_mutex 208STD_HEADERS+= span 209STD_HEADERS+= sstream 210STD_HEADERS+= stack 211STD_HEADERS+= stdatomic.h 212STD_HEADERS+= stdbool.h 213STD_HEADERS+= stddef.h 214STD_HEADERS+= stdexcept 215STD_HEADERS+= stdint.h 216STD_HEADERS+= stdio.h 217STD_HEADERS+= stdlib.h 218STD_HEADERS+= streambuf 219STD_HEADERS+= string 220STD_HEADERS+= string.h 221STD_HEADERS+= string_view 222STD_HEADERS+= strstream 223STD_HEADERS+= system_error 224STD_HEADERS+= tgmath.h 225STD_HEADERS+= thread 226STD_HEADERS+= tuple 227STD_HEADERS+= type_traits 228STD_HEADERS+= typeindex 229STD_HEADERS+= typeinfo 230STD_HEADERS+= uchar.h 231STD_HEADERS+= unordered_map 232STD_HEADERS+= unordered_set 233STD_HEADERS+= utility 234STD_HEADERS+= valarray 235STD_HEADERS+= variant 236STD_HEADERS+= vector 237STD_HEADERS+= version 238STD_HEADERS+= wchar.h 239STD_HEADERS+= wctype.h 240.for hdr in ${STD_HEADERS} 241STD+= ${HDRDIR}/${hdr} 242.endfor 243 244# Special case for __config_site, which as of libc++ 12.0.0 is generated by 245# CMake, and as of 13.0.0 installed side-by-side with__config. 246STD+= ${.CURDIR}/__config_site 247 248# Special case for module.modulemap, which as of libc++ 15.0.0 is generated by 249# CMake. 250STD+= ${.CURDIR}/module.modulemap 251 252RT_HEADERS+= cxxabi.h 253.for hdr in ${RT_HEADERS} 254STD+= ${_LIBCXXRTDIR}/${hdr} 255.endfor 256 257INCSGROUPS+= ALG 258ALGDIR= ${CXXINCLUDEDIR}/__algorithm 259ALG_HEADERS+= adjacent_find.h 260ALG_HEADERS+= all_of.h 261ALG_HEADERS+= any_of.h 262ALG_HEADERS+= binary_search.h 263ALG_HEADERS+= clamp.h 264ALG_HEADERS+= comp.h 265ALG_HEADERS+= comp_ref_type.h 266ALG_HEADERS+= copy.h 267ALG_HEADERS+= copy_backward.h 268ALG_HEADERS+= copy_if.h 269ALG_HEADERS+= copy_n.h 270ALG_HEADERS+= count.h 271ALG_HEADERS+= count_if.h 272ALG_HEADERS+= equal.h 273ALG_HEADERS+= equal_range.h 274ALG_HEADERS+= fill.h 275ALG_HEADERS+= fill_n.h 276ALG_HEADERS+= find.h 277ALG_HEADERS+= find_end.h 278ALG_HEADERS+= find_first_of.h 279ALG_HEADERS+= find_if.h 280ALG_HEADERS+= find_if_not.h 281ALG_HEADERS+= for_each.h 282ALG_HEADERS+= for_each_n.h 283ALG_HEADERS+= generate.h 284ALG_HEADERS+= generate_n.h 285ALG_HEADERS+= half_positive.h 286ALG_HEADERS+= in_found_result.h 287ALG_HEADERS+= in_fun_result.h 288ALG_HEADERS+= in_in_out_result.h 289ALG_HEADERS+= in_in_result.h 290ALG_HEADERS+= in_out_out_result.h 291ALG_HEADERS+= in_out_result.h 292ALG_HEADERS+= includes.h 293ALG_HEADERS+= inplace_merge.h 294ALG_HEADERS+= is_heap.h 295ALG_HEADERS+= is_heap_until.h 296ALG_HEADERS+= is_partitioned.h 297ALG_HEADERS+= is_permutation.h 298ALG_HEADERS+= is_sorted.h 299ALG_HEADERS+= is_sorted_until.h 300ALG_HEADERS+= iter_swap.h 301ALG_HEADERS+= iterator_operations.h 302ALG_HEADERS+= lexicographical_compare.h 303ALG_HEADERS+= lower_bound.h 304ALG_HEADERS+= make_heap.h 305ALG_HEADERS+= make_projected.h 306ALG_HEADERS+= max.h 307ALG_HEADERS+= max_element.h 308ALG_HEADERS+= merge.h 309ALG_HEADERS+= min.h 310ALG_HEADERS+= min_element.h 311ALG_HEADERS+= min_max_result.h 312ALG_HEADERS+= minmax.h 313ALG_HEADERS+= minmax_element.h 314ALG_HEADERS+= mismatch.h 315ALG_HEADERS+= move.h 316ALG_HEADERS+= move_backward.h 317ALG_HEADERS+= next_permutation.h 318ALG_HEADERS+= none_of.h 319ALG_HEADERS+= nth_element.h 320ALG_HEADERS+= partial_sort.h 321ALG_HEADERS+= partial_sort_copy.h 322ALG_HEADERS+= partition.h 323ALG_HEADERS+= partition_copy.h 324ALG_HEADERS+= partition_point.h 325ALG_HEADERS+= pop_heap.h 326ALG_HEADERS+= prev_permutation.h 327ALG_HEADERS+= push_heap.h 328ALG_HEADERS+= ranges_adjacent_find.h 329ALG_HEADERS+= ranges_all_of.h 330ALG_HEADERS+= ranges_any_of.h 331ALG_HEADERS+= ranges_binary_search.h 332ALG_HEADERS+= ranges_copy.h 333ALG_HEADERS+= ranges_copy_backward.h 334ALG_HEADERS+= ranges_copy_if.h 335ALG_HEADERS+= ranges_copy_n.h 336ALG_HEADERS+= ranges_count.h 337ALG_HEADERS+= ranges_count_if.h 338ALG_HEADERS+= ranges_equal.h 339ALG_HEADERS+= ranges_equal_range.h 340ALG_HEADERS+= ranges_fill.h 341ALG_HEADERS+= ranges_fill_n.h 342ALG_HEADERS+= ranges_find.h 343ALG_HEADERS+= ranges_find_end.h 344ALG_HEADERS+= ranges_find_first_of.h 345ALG_HEADERS+= ranges_find_if.h 346ALG_HEADERS+= ranges_find_if_not.h 347ALG_HEADERS+= ranges_for_each.h 348ALG_HEADERS+= ranges_for_each_n.h 349ALG_HEADERS+= ranges_generate.h 350ALG_HEADERS+= ranges_generate_n.h 351ALG_HEADERS+= ranges_includes.h 352ALG_HEADERS+= ranges_inplace_merge.h 353ALG_HEADERS+= ranges_is_heap.h 354ALG_HEADERS+= ranges_is_heap_until.h 355ALG_HEADERS+= ranges_is_partitioned.h 356ALG_HEADERS+= ranges_is_sorted.h 357ALG_HEADERS+= ranges_is_sorted_until.h 358ALG_HEADERS+= ranges_iterator_concept.h 359ALG_HEADERS+= ranges_lexicographical_compare.h 360ALG_HEADERS+= ranges_lower_bound.h 361ALG_HEADERS+= ranges_make_heap.h 362ALG_HEADERS+= ranges_max.h 363ALG_HEADERS+= ranges_max_element.h 364ALG_HEADERS+= ranges_merge.h 365ALG_HEADERS+= ranges_min.h 366ALG_HEADERS+= ranges_min_element.h 367ALG_HEADERS+= ranges_minmax.h 368ALG_HEADERS+= ranges_minmax_element.h 369ALG_HEADERS+= ranges_mismatch.h 370ALG_HEADERS+= ranges_move.h 371ALG_HEADERS+= ranges_move_backward.h 372ALG_HEADERS+= ranges_none_of.h 373ALG_HEADERS+= ranges_nth_element.h 374ALG_HEADERS+= ranges_partial_sort.h 375ALG_HEADERS+= ranges_partial_sort_copy.h 376ALG_HEADERS+= ranges_partition.h 377ALG_HEADERS+= ranges_partition_copy.h 378ALG_HEADERS+= ranges_partition_point.h 379ALG_HEADERS+= ranges_pop_heap.h 380ALG_HEADERS+= ranges_push_heap.h 381ALG_HEADERS+= ranges_remove.h 382ALG_HEADERS+= ranges_remove_copy.h 383ALG_HEADERS+= ranges_remove_copy_if.h 384ALG_HEADERS+= ranges_remove_if.h 385ALG_HEADERS+= ranges_replace.h 386ALG_HEADERS+= ranges_replace_copy.h 387ALG_HEADERS+= ranges_replace_copy_if.h 388ALG_HEADERS+= ranges_replace_if.h 389ALG_HEADERS+= ranges_reverse.h 390ALG_HEADERS+= ranges_reverse_copy.h 391ALG_HEADERS+= ranges_rotate_copy.h 392ALG_HEADERS+= ranges_search.h 393ALG_HEADERS+= ranges_search_n.h 394ALG_HEADERS+= ranges_set_difference.h 395ALG_HEADERS+= ranges_set_intersection.h 396ALG_HEADERS+= ranges_set_symmetric_difference.h 397ALG_HEADERS+= ranges_set_union.h 398ALG_HEADERS+= ranges_shuffle.h 399ALG_HEADERS+= ranges_sort.h 400ALG_HEADERS+= ranges_sort_heap.h 401ALG_HEADERS+= ranges_stable_partition.h 402ALG_HEADERS+= ranges_stable_sort.h 403ALG_HEADERS+= ranges_swap_ranges.h 404ALG_HEADERS+= ranges_transform.h 405ALG_HEADERS+= ranges_unique.h 406ALG_HEADERS+= ranges_unique_copy.h 407ALG_HEADERS+= ranges_upper_bound.h 408ALG_HEADERS+= remove.h 409ALG_HEADERS+= remove_copy.h 410ALG_HEADERS+= remove_copy_if.h 411ALG_HEADERS+= remove_if.h 412ALG_HEADERS+= replace.h 413ALG_HEADERS+= replace_copy.h 414ALG_HEADERS+= replace_copy_if.h 415ALG_HEADERS+= replace_if.h 416ALG_HEADERS+= reverse.h 417ALG_HEADERS+= reverse_copy.h 418ALG_HEADERS+= rotate.h 419ALG_HEADERS+= rotate_copy.h 420ALG_HEADERS+= sample.h 421ALG_HEADERS+= search.h 422ALG_HEADERS+= search_n.h 423ALG_HEADERS+= set_difference.h 424ALG_HEADERS+= set_intersection.h 425ALG_HEADERS+= set_symmetric_difference.h 426ALG_HEADERS+= set_union.h 427ALG_HEADERS+= shift_left.h 428ALG_HEADERS+= shift_right.h 429ALG_HEADERS+= shuffle.h 430ALG_HEADERS+= sift_down.h 431ALG_HEADERS+= sort.h 432ALG_HEADERS+= sort_heap.h 433ALG_HEADERS+= stable_partition.h 434ALG_HEADERS+= stable_sort.h 435ALG_HEADERS+= swap_ranges.h 436ALG_HEADERS+= transform.h 437ALG_HEADERS+= unique.h 438ALG_HEADERS+= unique_copy.h 439ALG_HEADERS+= unwrap_iter.h 440ALG_HEADERS+= upper_bound.h 441.for hdr in ${ALG_HEADERS} 442ALG+= ${HDRDIR}/__algorithm/${hdr} 443.endfor 444 445INCSGROUPS+= BIT 446BITDIR= ${CXXINCLUDEDIR}/__bit 447BIT_HEADERS+= bit_cast.h 448BIT_HEADERS+= byteswap.h 449.for hdr in ${BIT_HEADERS} 450BIT+= ${HDRDIR}/__bit/${hdr} 451.endfor 452 453INCSGROUPS+= CHC 454CHCDIR= ${CXXINCLUDEDIR}/__charconv 455CHC_HEADERS+= chars_format.h 456CHC_HEADERS+= from_chars_result.h 457CHC_HEADERS+= tables.h 458CHC_HEADERS+= to_chars_base_10.h 459CHC_HEADERS+= to_chars_result.h 460.for hdr in ${CHC_HEADERS} 461CHC+= ${HDRDIR}/__charconv/${hdr} 462.endfor 463 464INCSGROUPS+= CHR 465CHRDIR= ${CXXINCLUDEDIR}/__chrono 466CHR_HEADERS+= calendar.h 467CHR_HEADERS+= convert_to_timespec.h 468CHR_HEADERS+= day.h 469CHR_HEADERS+= duration.h 470CHR_HEADERS+= file_clock.h 471CHR_HEADERS+= hh_mm_ss.h 472CHR_HEADERS+= high_resolution_clock.h 473CHR_HEADERS+= literals.h 474CHR_HEADERS+= month.h 475CHR_HEADERS+= month_weekday.h 476CHR_HEADERS+= monthday.h 477CHR_HEADERS+= steady_clock.h 478CHR_HEADERS+= system_clock.h 479CHR_HEADERS+= time_point.h 480CHR_HEADERS+= weekday.h 481CHR_HEADERS+= year.h 482CHR_HEADERS+= year_month.h 483CHR_HEADERS+= year_month_day.h 484CHR_HEADERS+= year_month_weekday.h 485.for hdr in ${CHR_HEADERS} 486CHR+= ${HDRDIR}/__chrono/${hdr} 487.endfor 488 489INCSGROUPS+= CMP 490CMPDIR= ${CXXINCLUDEDIR}/__compare 491CMP_HEADERS+= common_comparison_category.h 492CMP_HEADERS+= compare_partial_order_fallback.h 493CMP_HEADERS+= compare_strong_order_fallback.h 494CMP_HEADERS+= compare_three_way.h 495CMP_HEADERS+= compare_three_way_result.h 496CMP_HEADERS+= compare_weak_order_fallback.h 497CMP_HEADERS+= is_eq.h 498CMP_HEADERS+= ordering.h 499CMP_HEADERS+= partial_order.h 500CMP_HEADERS+= strong_order.h 501CMP_HEADERS+= synth_three_way.h 502CMP_HEADERS+= three_way_comparable.h 503CMP_HEADERS+= weak_order.h 504.for hdr in ${CMP_HEADERS} 505CMP+= ${HDRDIR}/__compare/${hdr} 506.endfor 507 508INCSGROUPS+= CON 509CONDIR= ${CXXINCLUDEDIR}/__concepts 510CON_HEADERS+= arithmetic.h 511CON_HEADERS+= assignable.h 512CON_HEADERS+= boolean_testable.h 513CON_HEADERS+= class_or_enum.h 514CON_HEADERS+= common_reference_with.h 515CON_HEADERS+= common_with.h 516CON_HEADERS+= constructible.h 517CON_HEADERS+= convertible_to.h 518CON_HEADERS+= copyable.h 519CON_HEADERS+= derived_from.h 520CON_HEADERS+= destructible.h 521CON_HEADERS+= different_from.h 522CON_HEADERS+= equality_comparable.h 523CON_HEADERS+= invocable.h 524CON_HEADERS+= movable.h 525CON_HEADERS+= predicate.h 526CON_HEADERS+= regular.h 527CON_HEADERS+= relation.h 528CON_HEADERS+= same_as.h 529CON_HEADERS+= semiregular.h 530CON_HEADERS+= swappable.h 531CON_HEADERS+= totally_ordered.h 532.for hdr in ${CON_HEADERS} 533CON+= ${HDRDIR}/__concepts/${hdr} 534.endfor 535 536INCSGROUPS+= COR 537CORDIR= ${CXXINCLUDEDIR}/__coroutine 538COR_HEADERS+= coroutine_handle.h 539COR_HEADERS+= coroutine_traits.h 540COR_HEADERS+= noop_coroutine_handle.h 541COR_HEADERS+= trivial_awaitables.h 542.for hdr in ${COR_HEADERS} 543COR+= ${HDRDIR}/__coroutine/${hdr} 544.endfor 545 546INCSGROUPS+= DBG 547DBGDIR= ${CXXINCLUDEDIR}/__debug_utils 548DBG_HEADERS+= randomize_range.h 549.for hdr in ${DBG_HEADERS} 550DBG+= ${HDRDIR}/__debug_utils/${hdr} 551.endfor 552 553INCSGROUPS+= FS 554FSDIR= ${CXXINCLUDEDIR}/__filesystem 555FS_HEADERS+= copy_options.h 556FS_HEADERS+= directory_entry.h 557FS_HEADERS+= directory_iterator.h 558FS_HEADERS+= directory_options.h 559FS_HEADERS+= file_status.h 560FS_HEADERS+= file_time_type.h 561FS_HEADERS+= file_type.h 562FS_HEADERS+= filesystem_error.h 563FS_HEADERS+= operations.h 564FS_HEADERS+= path.h 565FS_HEADERS+= path_iterator.h 566FS_HEADERS+= perm_options.h 567FS_HEADERS+= perms.h 568FS_HEADERS+= recursive_directory_iterator.h 569FS_HEADERS+= space_info.h 570FS_HEADERS+= u8path.h 571.for hdr in ${FS_HEADERS} 572FS+= ${HDRDIR}/__filesystem/${hdr} 573.endfor 574 575INCSGROUPS+= FMT 576FMTDIR= ${CXXINCLUDEDIR}/__format 577FMT_HEADERS+= buffer.h 578FMT_HEADERS+= concepts.h 579FMT_HEADERS+= enable_insertable.h 580FMT_HEADERS+= extended_grapheme_cluster_table.h 581FMT_HEADERS+= format_arg.h 582FMT_HEADERS+= format_arg_store.h 583FMT_HEADERS+= format_args.h 584FMT_HEADERS+= format_context.h 585FMT_HEADERS+= format_error.h 586FMT_HEADERS+= format_fwd.h 587FMT_HEADERS+= format_parse_context.h 588FMT_HEADERS+= format_string.h 589FMT_HEADERS+= format_to_n_result.h 590FMT_HEADERS+= formatter.h 591FMT_HEADERS+= formatter_bool.h 592FMT_HEADERS+= formatter_char.h 593FMT_HEADERS+= formatter_floating_point.h 594FMT_HEADERS+= formatter_integer.h 595FMT_HEADERS+= formatter_integral.h 596FMT_HEADERS+= formatter_output.h 597FMT_HEADERS+= formatter_pointer.h 598FMT_HEADERS+= formatter_string.h 599FMT_HEADERS+= parser_std_format_spec.h 600FMT_HEADERS+= unicode.h 601.for hdr in ${FMT_HEADERS} 602FMT+= ${HDRDIR}/__format/${hdr} 603.endfor 604 605INCSGROUPS+= FUN 606FUNDIR= ${CXXINCLUDEDIR}/__functional 607FUN_HEADERS+= binary_function.h 608FUN_HEADERS+= binary_negate.h 609FUN_HEADERS+= bind.h 610FUN_HEADERS+= bind_back.h 611FUN_HEADERS+= bind_front.h 612FUN_HEADERS+= binder1st.h 613FUN_HEADERS+= binder2nd.h 614FUN_HEADERS+= boyer_moore_searcher.h 615FUN_HEADERS+= compose.h 616FUN_HEADERS+= default_searcher.h 617FUN_HEADERS+= function.h 618FUN_HEADERS+= hash.h 619FUN_HEADERS+= identity.h 620FUN_HEADERS+= invoke.h 621FUN_HEADERS+= is_transparent.h 622FUN_HEADERS+= mem_fn.h 623FUN_HEADERS+= mem_fun_ref.h 624FUN_HEADERS+= not_fn.h 625FUN_HEADERS+= operations.h 626FUN_HEADERS+= perfect_forward.h 627FUN_HEADERS+= pointer_to_binary_function.h 628FUN_HEADERS+= pointer_to_unary_function.h 629FUN_HEADERS+= ranges_operations.h 630FUN_HEADERS+= reference_wrapper.h 631FUN_HEADERS+= unary_function.h 632FUN_HEADERS+= unary_negate.h 633FUN_HEADERS+= unwrap_ref.h 634FUN_HEADERS+= weak_result_type.h 635.for hdr in ${FUN_HEADERS} 636FUN+= ${HDRDIR}/__functional/${hdr} 637.endfor 638 639INCSGROUPS+= FWD 640FWDDIR= ${CXXINCLUDEDIR}/__fwd 641FWD_HEADERS+= span.h 642FWD_HEADERS+= string_view.h 643.for hdr in ${FWD_HEADERS} 644FWD+= ${HDRDIR}/__fwd/${hdr} 645.endfor 646 647INCSGROUPS+= IOS 648IOSDIR= ${CXXINCLUDEDIR}/__ios 649IOS_HEADERS+= fpos.h 650.for hdr in ${IOS_HEADERS} 651IOS+= ${HDRDIR}/__ios/${hdr} 652.endfor 653 654INCSGROUPS+= IT 655ITDIR= ${CXXINCLUDEDIR}/__iterator 656IT_HEADERS+= access.h 657IT_HEADERS+= advance.h 658IT_HEADERS+= back_insert_iterator.h 659IT_HEADERS+= bounded_iter.h 660IT_HEADERS+= common_iterator.h 661IT_HEADERS+= concepts.h 662IT_HEADERS+= counted_iterator.h 663IT_HEADERS+= data.h 664IT_HEADERS+= default_sentinel.h 665IT_HEADERS+= distance.h 666IT_HEADERS+= empty.h 667IT_HEADERS+= erase_if_container.h 668IT_HEADERS+= front_insert_iterator.h 669IT_HEADERS+= incrementable_traits.h 670IT_HEADERS+= indirectly_comparable.h 671IT_HEADERS+= insert_iterator.h 672IT_HEADERS+= istream_iterator.h 673IT_HEADERS+= istreambuf_iterator.h 674IT_HEADERS+= iter_move.h 675IT_HEADERS+= iter_swap.h 676IT_HEADERS+= iterator.h 677IT_HEADERS+= iterator_traits.h 678IT_HEADERS+= mergeable.h 679IT_HEADERS+= move_iterator.h 680IT_HEADERS+= move_sentinel.h 681IT_HEADERS+= next.h 682IT_HEADERS+= ostream_iterator.h 683IT_HEADERS+= ostreambuf_iterator.h 684IT_HEADERS+= permutable.h 685IT_HEADERS+= prev.h 686IT_HEADERS+= projected.h 687IT_HEADERS+= readable_traits.h 688IT_HEADERS+= reverse_access.h 689IT_HEADERS+= reverse_iterator.h 690IT_HEADERS+= size.h 691IT_HEADERS+= sortable.h 692IT_HEADERS+= unreachable_sentinel.h 693IT_HEADERS+= wrap_iter.h 694.for hdr in ${IT_HEADERS} 695IT+= ${HDRDIR}/__iterator/${hdr} 696.endfor 697 698INCSGROUPS+= MEM 699MEMDIR= ${CXXINCLUDEDIR}/__memory 700MEM_HEADERS+= addressof.h 701MEM_HEADERS+= allocate_at_least.h 702MEM_HEADERS+= allocation_guard.h 703MEM_HEADERS+= allocator.h 704MEM_HEADERS+= allocator_arg_t.h 705MEM_HEADERS+= allocator_traits.h 706MEM_HEADERS+= assume_aligned.h 707MEM_HEADERS+= auto_ptr.h 708MEM_HEADERS+= compressed_pair.h 709MEM_HEADERS+= concepts.h 710MEM_HEADERS+= construct_at.h 711MEM_HEADERS+= pointer_traits.h 712MEM_HEADERS+= ranges_construct_at.h 713MEM_HEADERS+= ranges_uninitialized_algorithms.h 714MEM_HEADERS+= raw_storage_iterator.h 715MEM_HEADERS+= shared_ptr.h 716MEM_HEADERS+= temporary_buffer.h 717MEM_HEADERS+= uninitialized_algorithms.h 718MEM_HEADERS+= unique_ptr.h 719MEM_HEADERS+= uses_allocator.h 720MEM_HEADERS+= voidify.h 721.for hdr in ${MEM_HEADERS} 722MEM+= ${HDRDIR}/__memory/${hdr} 723.endfor 724 725INCSGROUPS+= NUM 726NUMDIR= ${CXXINCLUDEDIR}/__numeric 727NUM_HEADERS+= accumulate.h 728NUM_HEADERS+= adjacent_difference.h 729NUM_HEADERS+= exclusive_scan.h 730NUM_HEADERS+= gcd_lcm.h 731NUM_HEADERS+= inclusive_scan.h 732NUM_HEADERS+= inner_product.h 733NUM_HEADERS+= iota.h 734NUM_HEADERS+= midpoint.h 735NUM_HEADERS+= partial_sum.h 736NUM_HEADERS+= reduce.h 737NUM_HEADERS+= transform_exclusive_scan.h 738NUM_HEADERS+= transform_inclusive_scan.h 739NUM_HEADERS+= transform_reduce.h 740.for hdr in ${NUM_HEADERS} 741NUM+= ${HDRDIR}/__numeric/${hdr} 742.endfor 743 744INCSGROUPS+= RND 745RNDDIR= ${CXXINCLUDEDIR}/__random 746RND_HEADERS+= bernoulli_distribution.h 747RND_HEADERS+= binomial_distribution.h 748RND_HEADERS+= cauchy_distribution.h 749RND_HEADERS+= chi_squared_distribution.h 750RND_HEADERS+= clamp_to_integral.h 751RND_HEADERS+= default_random_engine.h 752RND_HEADERS+= discard_block_engine.h 753RND_HEADERS+= discrete_distribution.h 754RND_HEADERS+= exponential_distribution.h 755RND_HEADERS+= extreme_value_distribution.h 756RND_HEADERS+= fisher_f_distribution.h 757RND_HEADERS+= gamma_distribution.h 758RND_HEADERS+= generate_canonical.h 759RND_HEADERS+= geometric_distribution.h 760RND_HEADERS+= independent_bits_engine.h 761RND_HEADERS+= is_seed_sequence.h 762RND_HEADERS+= is_valid.h 763RND_HEADERS+= knuth_b.h 764RND_HEADERS+= linear_congruential_engine.h 765RND_HEADERS+= log2.h 766RND_HEADERS+= lognormal_distribution.h 767RND_HEADERS+= mersenne_twister_engine.h 768RND_HEADERS+= negative_binomial_distribution.h 769RND_HEADERS+= normal_distribution.h 770RND_HEADERS+= piecewise_constant_distribution.h 771RND_HEADERS+= piecewise_linear_distribution.h 772RND_HEADERS+= poisson_distribution.h 773RND_HEADERS+= random_device.h 774RND_HEADERS+= ranlux.h 775RND_HEADERS+= seed_seq.h 776RND_HEADERS+= shuffle_order_engine.h 777RND_HEADERS+= student_t_distribution.h 778RND_HEADERS+= subtract_with_carry_engine.h 779RND_HEADERS+= uniform_int_distribution.h 780RND_HEADERS+= uniform_random_bit_generator.h 781RND_HEADERS+= uniform_real_distribution.h 782RND_HEADERS+= weibull_distribution.h 783.for hdr in ${RND_HEADERS} 784RND+= ${HDRDIR}/__random/${hdr} 785.endfor 786 787INCSGROUPS+= RNG 788RNGDIR= ${CXXINCLUDEDIR}/__ranges 789RNG_HEADERS+= access.h 790RNG_HEADERS+= all.h 791RNG_HEADERS+= common_view.h 792RNG_HEADERS+= concepts.h 793RNG_HEADERS+= copyable_box.h 794RNG_HEADERS+= counted.h 795RNG_HEADERS+= dangling.h 796RNG_HEADERS+= data.h 797RNG_HEADERS+= drop_view.h 798RNG_HEADERS+= empty.h 799RNG_HEADERS+= empty_view.h 800RNG_HEADERS+= enable_borrowed_range.h 801RNG_HEADERS+= enable_view.h 802RNG_HEADERS+= filter_view.h 803RNG_HEADERS+= iota_view.h 804RNG_HEADERS+= join_view.h 805RNG_HEADERS+= lazy_split_view.h 806RNG_HEADERS+= non_propagating_cache.h 807RNG_HEADERS+= owning_view.h 808RNG_HEADERS+= range_adaptor.h 809RNG_HEADERS+= rbegin.h 810RNG_HEADERS+= ref_view.h 811RNG_HEADERS+= rend.h 812RNG_HEADERS+= reverse_view.h 813RNG_HEADERS+= single_view.h 814RNG_HEADERS+= size.h 815RNG_HEADERS+= subrange.h 816RNG_HEADERS+= take_view.h 817RNG_HEADERS+= transform_view.h 818RNG_HEADERS+= view_interface.h 819RNG_HEADERS+= views.h 820RNG_HEADERS+= zip_view.h 821.for hdr in ${RNG_HEADERS} 822RNG+= ${HDRDIR}/__ranges/${hdr} 823.endfor 824 825INCSGROUPS+= STR 826STRDIR= ${CXXINCLUDEDIR}/__string 827STR_HEADERS+= char_traits.h 828STR_HEADERS+= extern_template_lists.h 829.for hdr in ${STR_HEADERS} 830STR+= ${HDRDIR}/__string/${hdr} 831.endfor 832 833INCSGROUPS+= THR 834THRDIR= ${CXXINCLUDEDIR}/__thread 835THR_HEADERS+= poll_with_backoff.h 836THR_HEADERS+= timed_backoff_policy.h 837.for hdr in ${THR_HEADERS} 838THR+= ${HDRDIR}/__thread/${hdr} 839.endfor 840 841INCSGROUPS+= TTR 842TTRDIR= ${CXXINCLUDEDIR}/__type_traits 843TTR_HEADERS+= add_const.h 844TTR_HEADERS+= add_cv.h 845TTR_HEADERS+= add_lvalue_reference.h 846TTR_HEADERS+= add_pointer.h 847TTR_HEADERS+= add_rvalue_reference.h 848TTR_HEADERS+= add_volatile.h 849TTR_HEADERS+= alignment_of.h 850TTR_HEADERS+= apply_cv.h 851TTR_HEADERS+= conditional.h 852TTR_HEADERS+= conjunction.h 853TTR_HEADERS+= decay.h 854TTR_HEADERS+= disjunction.h 855TTR_HEADERS+= enable_if.h 856TTR_HEADERS+= extent.h 857TTR_HEADERS+= has_unique_object_representation.h 858TTR_HEADERS+= has_virtual_destructor.h 859TTR_HEADERS+= integral_constant.h 860TTR_HEADERS+= is_abstract.h 861TTR_HEADERS+= is_aggregate.h 862TTR_HEADERS+= is_arithmetic.h 863TTR_HEADERS+= is_array.h 864TTR_HEADERS+= is_assignable.h 865TTR_HEADERS+= is_base_of.h 866TTR_HEADERS+= is_bounded_array.h 867TTR_HEADERS+= is_callable.h 868TTR_HEADERS+= is_class.h 869TTR_HEADERS+= is_compound.h 870TTR_HEADERS+= is_const.h 871TTR_HEADERS+= is_constant_evaluated.h 872TTR_HEADERS+= is_constructible.h 873TTR_HEADERS+= is_convertible.h 874TTR_HEADERS+= is_copy_assignable.h 875TTR_HEADERS+= is_copy_constructible.h 876TTR_HEADERS+= is_core_convertible.h 877TTR_HEADERS+= is_default_constructible.h 878TTR_HEADERS+= is_destructible.h 879TTR_HEADERS+= is_empty.h 880TTR_HEADERS+= is_enum.h 881TTR_HEADERS+= is_final.h 882TTR_HEADERS+= is_floating_point.h 883TTR_HEADERS+= is_function.h 884TTR_HEADERS+= is_fundamental.h 885TTR_HEADERS+= is_integral.h 886TTR_HEADERS+= is_literal_type.h 887TTR_HEADERS+= is_member_function_pointer.h 888TTR_HEADERS+= is_member_object_pointer.h 889TTR_HEADERS+= is_member_pointer.h 890TTR_HEADERS+= is_move_assignable.h 891TTR_HEADERS+= is_move_constructible.h 892TTR_HEADERS+= is_nothrow_assignable.h 893TTR_HEADERS+= is_nothrow_constructible.h 894TTR_HEADERS+= is_nothrow_copy_assignable.h 895TTR_HEADERS+= is_nothrow_copy_constructible.h 896TTR_HEADERS+= is_nothrow_default_constructible.h 897TTR_HEADERS+= is_nothrow_destructible.h 898TTR_HEADERS+= is_nothrow_move_assignable.h 899TTR_HEADERS+= is_nothrow_move_constructible.h 900TTR_HEADERS+= is_null_pointer.h 901TTR_HEADERS+= is_object.h 902TTR_HEADERS+= is_pod.h 903TTR_HEADERS+= is_pointer.h 904TTR_HEADERS+= is_polymorphic.h 905TTR_HEADERS+= is_reference.h 906TTR_HEADERS+= is_reference_wrapper.h 907TTR_HEADERS+= is_referenceable.h 908TTR_HEADERS+= is_same.h 909TTR_HEADERS+= is_scalar.h 910TTR_HEADERS+= is_scoped_enum.h 911TTR_HEADERS+= is_signed.h 912TTR_HEADERS+= is_standard_layout.h 913TTR_HEADERS+= is_trivial.h 914TTR_HEADERS+= is_trivially_assignable.h 915TTR_HEADERS+= is_trivially_constructible.h 916TTR_HEADERS+= is_trivially_copy_assignable.h 917TTR_HEADERS+= is_trivially_copy_constructible.h 918TTR_HEADERS+= is_trivially_copyable.h 919TTR_HEADERS+= is_trivially_default_constructible.h 920TTR_HEADERS+= is_trivially_destructible.h 921TTR_HEADERS+= is_trivially_move_assignable.h 922TTR_HEADERS+= is_trivially_move_constructible.h 923TTR_HEADERS+= is_unbounded_array.h 924TTR_HEADERS+= is_union.h 925TTR_HEADERS+= is_unsigned.h 926TTR_HEADERS+= is_void.h 927TTR_HEADERS+= is_volatile.h 928TTR_HEADERS+= negation.h 929TTR_HEADERS+= rank.h 930TTR_HEADERS+= remove_all_extents.h 931TTR_HEADERS+= remove_const.h 932TTR_HEADERS+= remove_cv.h 933TTR_HEADERS+= remove_extent.h 934TTR_HEADERS+= remove_pointer.h 935TTR_HEADERS+= remove_reference.h 936TTR_HEADERS+= remove_volatile.h 937TTR_HEADERS+= type_identity.h 938TTR_HEADERS+= underlying_type.h 939TTR_HEADERS+= void_t.h 940.for hdr in ${TTR_HEADERS} 941TTR+= ${HDRDIR}/__type_traits/${hdr} 942.endfor 943 944INCSGROUPS+= UTL 945UTLDIR= ${CXXINCLUDEDIR}/__utility 946UTL_HEADERS+= as_const.h 947UTL_HEADERS+= auto_cast.h 948UTL_HEADERS+= cmp.h 949UTL_HEADERS+= declval.h 950UTL_HEADERS+= exchange.h 951UTL_HEADERS+= forward.h 952UTL_HEADERS+= in_place.h 953UTL_HEADERS+= integer_sequence.h 954UTL_HEADERS+= move.h 955UTL_HEADERS+= pair.h 956UTL_HEADERS+= piecewise_construct.h 957UTL_HEADERS+= priority_tag.h 958UTL_HEADERS+= rel_ops.h 959UTL_HEADERS+= swap.h 960UTL_HEADERS+= to_underlying.h 961UTL_HEADERS+= transaction.h 962UTL_HEADERS+= unreachable.h 963.for hdr in ${UTL_HEADERS} 964UTL+= ${HDRDIR}/__utility/${hdr} 965.endfor 966 967INCSGROUPS+= VAR 968VARDIR= ${CXXINCLUDEDIR}/__variant 969VAR_HEADERS+= monostate.h 970.for hdr in ${VAR_HEADERS} 971VAR+= ${HDRDIR}/__variant/${hdr} 972.endfor 973 974INCSGROUPS+= EXP 975EXPDIR= ${CXXINCLUDEDIR}/experimental 976EXP_HEADERS+= __config 977EXP_HEADERS+= __memory 978EXP_HEADERS+= algorithm 979EXP_HEADERS+= coroutine 980EXP_HEADERS+= deque 981EXP_HEADERS+= forward_list 982EXP_HEADERS+= functional 983EXP_HEADERS+= iterator 984EXP_HEADERS+= list 985EXP_HEADERS+= map 986EXP_HEADERS+= memory_resource 987EXP_HEADERS+= propagate_const 988EXP_HEADERS+= regex 989EXP_HEADERS+= set 990EXP_HEADERS+= simd 991EXP_HEADERS+= string 992EXP_HEADERS+= type_traits 993EXP_HEADERS+= unordered_map 994EXP_HEADERS+= unordered_set 995EXP_HEADERS+= utility 996EXP_HEADERS+= vector 997.for hdr in ${EXP_HEADERS} 998EXP+= ${HDRDIR}/experimental/${hdr} 999.endfor 1000 1001INCSGROUPS+= EXT 1002EXTDIR= ${CXXINCLUDEDIR}/ext 1003EXT_HEADERS+= __hash 1004EXT_HEADERS+= hash_map 1005EXT_HEADERS+= hash_set 1006.for hdr in ${EXT_HEADERS} 1007EXT+= ${HDRDIR}/ext/${hdr} 1008.endfor 1009 1010.include <bsd.lib.mk> 1011