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+= atomic.cpp 22SRCS+= barrier.cpp 23SRCS+= bind.cpp 24SRCS+= charconv.cpp 25SRCS+= chrono.cpp 26SRCS+= condition_variable.cpp 27SRCS+= condition_variable_destructor.cpp 28SRCS+= debug.cpp 29SRCS+= exception.cpp 30SRCS+= filesystem/directory_iterator.cpp 31SRCS+= filesystem/int128_builtins.cpp 32SRCS+= filesystem/operations.cpp 33SRCS+= format.cpp 34SRCS+= functional.cpp 35SRCS+= future.cpp 36SRCS+= hash.cpp 37SRCS+= ios.cpp 38SRCS+= ios.instantiations.cpp 39SRCS+= iostream.cpp 40SRCS+= legacy_pointer_safety.cpp 41SRCS+= locale.cpp 42SRCS+= memory.cpp 43SRCS+= mutex.cpp 44SRCS+= mutex_destructor.cpp 45SRCS+= new.cpp 46SRCS+= optional.cpp 47SRCS+= random.cpp 48SRCS+= random_shuffle.cpp 49SRCS+= regex.cpp 50SRCS+= shared_mutex.cpp 51SRCS+= stdexcept.cpp 52SRCS+= string.cpp 53SRCS+= strstream.cpp 54SRCS+= system_error.cpp 55SRCS+= thread.cpp 56SRCS+= typeinfo.cpp 57SRCS+= utility.cpp 58SRCS+= valarray.cpp 59SRCS+= variant.cpp 60SRCS+= vector.cpp 61 62CXXRT_SRCS+= auxhelper.cc 63CXXRT_SRCS+= dynamic_cast.cc 64CXXRT_SRCS+= exception.cc 65CXXRT_SRCS+= guard.cc 66CXXRT_SRCS+= libelftc_dem_gnu3.c 67CXXRT_SRCS+= memory.cc 68CXXRT_SRCS+= stdexcept.cc 69CXXRT_SRCS+= terminate.cc 70CXXRT_SRCS+= typeinfo.cc 71 72.for _S in ${CXXRT_SRCS} 73CLEANFILES+= cxxrt_${_S} 74STATICOBJS+= cxxrt_${_S:R}.o 75cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA 76 ln -sf ${.ALLSRC} ${.TARGET} 77.endfor 78 79WARNS?= 0 80CFLAGS+= -isystem ${.CURDIR} 81CFLAGS+= -isystem ${HDRDIR} 82CFLAGS+= -isystem ${_LIBCXXRTDIR} 83CFLAGS+= -nostdinc++ 84CFLAGS+= -nostdlib 85CFLAGS+= -D_LIBCPP_BUILDING_LIBRARY 86CFLAGS+= -DLIBCXXRT 87CFLAGS+= -ffunction-sections 88CFLAGS+= -fdata-sections 89CXXSTD?= c++14 90 91LIBADD+= cxxrt 92 93INCSGROUPS+= STD 94STDDIR= ${CXXINCLUDEDIR} 95STD_HEADERS+= __availability 96STD_HEADERS+= __bit_reference 97STD_HEADERS+= __bits 98STD_HEADERS+= __bsd_locale_defaults.h 99STD_HEADERS+= __bsd_locale_fallbacks.h 100STD_HEADERS+= __config 101STD_HEADERS+= __debug 102STD_HEADERS+= __errc 103STD_HEADERS+= __function_like.h 104STD_HEADERS+= __functional_base 105STD_HEADERS+= __hash_table 106STD_HEADERS+= __libcpp_version 107STD_HEADERS+= __locale 108STD_HEADERS+= __mbstate_t.h 109STD_HEADERS+= __mutex_base 110STD_HEADERS+= __node_handle 111STD_HEADERS+= __nullptr 112STD_HEADERS+= __split_buffer 113STD_HEADERS+= __std_stream 114STD_HEADERS+= __string 115STD_HEADERS+= __threading_support 116STD_HEADERS+= __tree 117STD_HEADERS+= __tuple 118STD_HEADERS+= __undef_macros 119STD_HEADERS+= algorithm 120STD_HEADERS+= any 121STD_HEADERS+= array 122STD_HEADERS+= atomic 123STD_HEADERS+= barrier 124STD_HEADERS+= bit 125STD_HEADERS+= bitset 126STD_HEADERS+= cassert 127STD_HEADERS+= ccomplex 128STD_HEADERS+= cctype 129STD_HEADERS+= cerrno 130STD_HEADERS+= cfenv 131STD_HEADERS+= cfloat 132STD_HEADERS+= charconv 133STD_HEADERS+= chrono 134STD_HEADERS+= cinttypes 135STD_HEADERS+= ciso646 136STD_HEADERS+= climits 137STD_HEADERS+= clocale 138STD_HEADERS+= cmath 139STD_HEADERS+= codecvt 140STD_HEADERS+= compare 141STD_HEADERS+= complex 142STD_HEADERS+= complex.h 143STD_HEADERS+= concepts 144STD_HEADERS+= condition_variable 145STD_HEADERS+= coroutine 146STD_HEADERS+= csetjmp 147STD_HEADERS+= csignal 148STD_HEADERS+= cstdarg 149STD_HEADERS+= cstdbool 150STD_HEADERS+= cstddef 151STD_HEADERS+= cstdint 152STD_HEADERS+= cstdio 153STD_HEADERS+= cstdlib 154STD_HEADERS+= cstring 155STD_HEADERS+= ctgmath 156STD_HEADERS+= ctime 157STD_HEADERS+= ctype.h 158STD_HEADERS+= cwchar 159STD_HEADERS+= cwctype 160STD_HEADERS+= deque 161STD_HEADERS+= errno.h 162STD_HEADERS+= exception 163STD_HEADERS+= execution 164STD_HEADERS+= fenv.h 165STD_HEADERS+= filesystem 166STD_HEADERS+= float.h 167STD_HEADERS+= format 168STD_HEADERS+= forward_list 169STD_HEADERS+= fstream 170STD_HEADERS+= functional 171STD_HEADERS+= future 172STD_HEADERS+= initializer_list 173STD_HEADERS+= inttypes.h 174STD_HEADERS+= iomanip 175STD_HEADERS+= ios 176STD_HEADERS+= iosfwd 177STD_HEADERS+= iostream 178STD_HEADERS+= istream 179STD_HEADERS+= iterator 180STD_HEADERS+= latch 181STD_HEADERS+= limits 182STD_HEADERS+= limits.h 183STD_HEADERS+= list 184STD_HEADERS+= locale 185STD_HEADERS+= locale.h 186STD_HEADERS+= map 187STD_HEADERS+= math.h 188STD_HEADERS+= memory 189STD_HEADERS+= module.modulemap 190STD_HEADERS+= mutex 191STD_HEADERS+= new 192STD_HEADERS+= numbers 193STD_HEADERS+= numeric 194STD_HEADERS+= optional 195STD_HEADERS+= ostream 196STD_HEADERS+= queue 197STD_HEADERS+= random 198STD_HEADERS+= ranges 199STD_HEADERS+= ratio 200STD_HEADERS+= regex 201STD_HEADERS+= scoped_allocator 202STD_HEADERS+= semaphore 203STD_HEADERS+= set 204STD_HEADERS+= setjmp.h 205STD_HEADERS+= shared_mutex 206STD_HEADERS+= span 207STD_HEADERS+= sstream 208STD_HEADERS+= stack 209STD_HEADERS+= stdbool.h 210STD_HEADERS+= stddef.h 211STD_HEADERS+= stdexcept 212STD_HEADERS+= stdint.h 213STD_HEADERS+= stdio.h 214STD_HEADERS+= stdlib.h 215STD_HEADERS+= streambuf 216STD_HEADERS+= string 217STD_HEADERS+= string.h 218STD_HEADERS+= string_view 219STD_HEADERS+= strstream 220STD_HEADERS+= system_error 221STD_HEADERS+= tgmath.h 222STD_HEADERS+= thread 223STD_HEADERS+= tuple 224STD_HEADERS+= type_traits 225STD_HEADERS+= typeindex 226STD_HEADERS+= typeinfo 227STD_HEADERS+= unordered_map 228STD_HEADERS+= unordered_set 229STD_HEADERS+= utility 230STD_HEADERS+= valarray 231STD_HEADERS+= variant 232STD_HEADERS+= vector 233STD_HEADERS+= version 234STD_HEADERS+= wchar.h 235STD_HEADERS+= wctype.h 236.for hdr in ${STD_HEADERS} 237STD+= ${HDRDIR}/${hdr} 238.endfor 239 240# Special case for __config_site, which as of libc++ 12.0.0 is generated by 241# CMake, and as of 13.0.0 installed side-by-side with__config. 242STD+= ${.CURDIR}/__config_site 243 244RT_HEADERS+= cxxabi.h 245.for hdr in ${RT_HEADERS} 246STD+= ${_LIBCXXRTDIR}/${hdr} 247.endfor 248 249INCSGROUPS+= ALG 250ALGDIR= ${CXXINCLUDEDIR}/__algorithm 251ALG_HEADERS+= adjacent_find.h 252ALG_HEADERS+= all_of.h 253ALG_HEADERS+= any_of.h 254ALG_HEADERS+= binary_search.h 255ALG_HEADERS+= clamp.h 256ALG_HEADERS+= comp.h 257ALG_HEADERS+= comp_ref_type.h 258ALG_HEADERS+= copy.h 259ALG_HEADERS+= copy_backward.h 260ALG_HEADERS+= copy_if.h 261ALG_HEADERS+= copy_n.h 262ALG_HEADERS+= count.h 263ALG_HEADERS+= count_if.h 264ALG_HEADERS+= equal.h 265ALG_HEADERS+= equal_range.h 266ALG_HEADERS+= fill.h 267ALG_HEADERS+= fill_n.h 268ALG_HEADERS+= find.h 269ALG_HEADERS+= find_end.h 270ALG_HEADERS+= find_first_of.h 271ALG_HEADERS+= find_if.h 272ALG_HEADERS+= find_if_not.h 273ALG_HEADERS+= for_each.h 274ALG_HEADERS+= for_each_n.h 275ALG_HEADERS+= generate.h 276ALG_HEADERS+= generate_n.h 277ALG_HEADERS+= half_positive.h 278ALG_HEADERS+= includes.h 279ALG_HEADERS+= inplace_merge.h 280ALG_HEADERS+= is_heap.h 281ALG_HEADERS+= is_heap_until.h 282ALG_HEADERS+= is_partitioned.h 283ALG_HEADERS+= is_permutation.h 284ALG_HEADERS+= is_sorted.h 285ALG_HEADERS+= is_sorted_until.h 286ALG_HEADERS+= iter_swap.h 287ALG_HEADERS+= lexicographical_compare.h 288ALG_HEADERS+= lower_bound.h 289ALG_HEADERS+= make_heap.h 290ALG_HEADERS+= max.h 291ALG_HEADERS+= max_element.h 292ALG_HEADERS+= merge.h 293ALG_HEADERS+= min.h 294ALG_HEADERS+= min_element.h 295ALG_HEADERS+= minmax.h 296ALG_HEADERS+= minmax_element.h 297ALG_HEADERS+= mismatch.h 298ALG_HEADERS+= move.h 299ALG_HEADERS+= move_backward.h 300ALG_HEADERS+= next_permutation.h 301ALG_HEADERS+= none_of.h 302ALG_HEADERS+= nth_element.h 303ALG_HEADERS+= partial_sort.h 304ALG_HEADERS+= partial_sort_copy.h 305ALG_HEADERS+= partition.h 306ALG_HEADERS+= partition_copy.h 307ALG_HEADERS+= partition_point.h 308ALG_HEADERS+= pop_heap.h 309ALG_HEADERS+= prev_permutation.h 310ALG_HEADERS+= push_heap.h 311ALG_HEADERS+= remove.h 312ALG_HEADERS+= remove_copy.h 313ALG_HEADERS+= remove_copy_if.h 314ALG_HEADERS+= remove_if.h 315ALG_HEADERS+= replace.h 316ALG_HEADERS+= replace_copy.h 317ALG_HEADERS+= replace_copy_if.h 318ALG_HEADERS+= replace_if.h 319ALG_HEADERS+= reverse.h 320ALG_HEADERS+= reverse_copy.h 321ALG_HEADERS+= rotate.h 322ALG_HEADERS+= rotate_copy.h 323ALG_HEADERS+= sample.h 324ALG_HEADERS+= search.h 325ALG_HEADERS+= search_n.h 326ALG_HEADERS+= set_difference.h 327ALG_HEADERS+= set_intersection.h 328ALG_HEADERS+= set_symmetric_difference.h 329ALG_HEADERS+= set_union.h 330ALG_HEADERS+= shift_left.h 331ALG_HEADERS+= shift_right.h 332ALG_HEADERS+= shuffle.h 333ALG_HEADERS+= sift_down.h 334ALG_HEADERS+= sort.h 335ALG_HEADERS+= sort_heap.h 336ALG_HEADERS+= stable_partition.h 337ALG_HEADERS+= stable_sort.h 338ALG_HEADERS+= swap_ranges.h 339ALG_HEADERS+= transform.h 340ALG_HEADERS+= unique.h 341ALG_HEADERS+= unique_copy.h 342ALG_HEADERS+= unwrap_iter.h 343ALG_HEADERS+= upper_bound.h 344.for hdr in ${ALG_HEADERS} 345ALG+= ${HDRDIR}/__algorithm/${hdr} 346.endfor 347 348INCSGROUPS+= BIT 349BITDIR= ${CXXINCLUDEDIR}/__bit 350BIT_HEADERS+= bit_cast.h 351BIT_HEADERS+= byteswap.h 352.for hdr in ${BIT_HEADERS} 353BIT+= ${HDRDIR}/__bit/${hdr} 354.endfor 355 356INCSGROUPS+= CHC 357CHCDIR= ${CXXINCLUDEDIR}/__charconv 358CHC_HEADERS+= chars_format.h 359CHC_HEADERS+= from_chars_result.h 360CHC_HEADERS+= to_chars_result.h 361.for hdr in ${CHC_HEADERS} 362CHC+= ${HDRDIR}/__charconv/${hdr} 363.endfor 364 365INCSGROUPS+= CMP 366CMPDIR= ${CXXINCLUDEDIR}/__compare 367CMP_HEADERS+= common_comparison_category.h 368CMP_HEADERS+= compare_three_way.h 369CMP_HEADERS+= compare_three_way_result.h 370CMP_HEADERS+= is_eq.h 371CMP_HEADERS+= ordering.h 372CMP_HEADERS+= partial_order.h 373CMP_HEADERS+= strong_order.h 374CMP_HEADERS+= synth_three_way.h 375CMP_HEADERS+= three_way_comparable.h 376CMP_HEADERS+= weak_order.h 377.for hdr in ${CMP_HEADERS} 378CMP+= ${HDRDIR}/__compare/${hdr} 379.endfor 380 381INCSGROUPS+= CON 382CONDIR= ${CXXINCLUDEDIR}/__concepts 383CON_HEADERS+= arithmetic.h 384CON_HEADERS+= assignable.h 385CON_HEADERS+= boolean_testable.h 386CON_HEADERS+= class_or_enum.h 387CON_HEADERS+= common_reference_with.h 388CON_HEADERS+= common_with.h 389CON_HEADERS+= constructible.h 390CON_HEADERS+= convertible_to.h 391CON_HEADERS+= copyable.h 392CON_HEADERS+= derived_from.h 393CON_HEADERS+= destructible.h 394CON_HEADERS+= different_from.h 395CON_HEADERS+= equality_comparable.h 396CON_HEADERS+= invocable.h 397CON_HEADERS+= movable.h 398CON_HEADERS+= predicate.h 399CON_HEADERS+= regular.h 400CON_HEADERS+= relation.h 401CON_HEADERS+= same_as.h 402CON_HEADERS+= semiregular.h 403CON_HEADERS+= swappable.h 404CON_HEADERS+= totally_ordered.h 405.for hdr in ${CON_HEADERS} 406CON+= ${HDRDIR}/__concepts/${hdr} 407.endfor 408 409INCSGROUPS+= COR 410CORDIR= ${CXXINCLUDEDIR}/__coroutine 411COR_HEADERS+= coroutine_handle.h 412COR_HEADERS+= coroutine_traits.h 413COR_HEADERS+= noop_coroutine_handle.h 414COR_HEADERS+= trivial_awaitables.h 415.for hdr in ${COR_HEADERS} 416COR+= ${HDRDIR}/__coroutine/${hdr} 417.endfor 418 419INCSGROUPS+= FMT 420FMTDIR= ${CXXINCLUDEDIR}/__format 421FMT_HEADERS+= format_arg.h 422FMT_HEADERS+= format_args.h 423FMT_HEADERS+= format_context.h 424FMT_HEADERS+= format_error.h 425FMT_HEADERS+= format_fwd.h 426FMT_HEADERS+= format_parse_context.h 427FMT_HEADERS+= format_string.h 428FMT_HEADERS+= format_to_n_result.h 429FMT_HEADERS+= formatter.h 430FMT_HEADERS+= formatter_bool.h 431FMT_HEADERS+= formatter_char.h 432FMT_HEADERS+= formatter_integer.h 433FMT_HEADERS+= formatter_integral.h 434FMT_HEADERS+= formatter_string.h 435FMT_HEADERS+= parser_std_format_spec.h 436.for hdr in ${FMT_HEADERS} 437FMT+= ${HDRDIR}/__format/${hdr} 438.endfor 439 440INCSGROUPS+= FUN 441FUNDIR= ${CXXINCLUDEDIR}/__functional 442FUN_HEADERS+= binary_function.h 443FUN_HEADERS+= binary_negate.h 444FUN_HEADERS+= bind.h 445FUN_HEADERS+= bind_back.h 446FUN_HEADERS+= bind_front.h 447FUN_HEADERS+= binder1st.h 448FUN_HEADERS+= binder2nd.h 449FUN_HEADERS+= compose.h 450FUN_HEADERS+= default_searcher.h 451FUN_HEADERS+= function.h 452FUN_HEADERS+= hash.h 453FUN_HEADERS+= identity.h 454FUN_HEADERS+= invoke.h 455FUN_HEADERS+= is_transparent.h 456FUN_HEADERS+= mem_fn.h 457FUN_HEADERS+= mem_fun_ref.h 458FUN_HEADERS+= not_fn.h 459FUN_HEADERS+= operations.h 460FUN_HEADERS+= perfect_forward.h 461FUN_HEADERS+= pointer_to_binary_function.h 462FUN_HEADERS+= pointer_to_unary_function.h 463FUN_HEADERS+= ranges_operations.h 464FUN_HEADERS+= reference_wrapper.h 465FUN_HEADERS+= unary_function.h 466FUN_HEADERS+= unary_negate.h 467FUN_HEADERS+= unwrap_ref.h 468FUN_HEADERS+= weak_result_type.h 469.for hdr in ${FUN_HEADERS} 470FUN+= ${HDRDIR}/__functional/${hdr} 471.endfor 472 473INCSGROUPS+= IT 474ITDIR= ${CXXINCLUDEDIR}/__iterator 475IT_HEADERS+= access.h 476IT_HEADERS+= advance.h 477IT_HEADERS+= back_insert_iterator.h 478IT_HEADERS+= common_iterator.h 479IT_HEADERS+= concepts.h 480IT_HEADERS+= counted_iterator.h 481IT_HEADERS+= data.h 482IT_HEADERS+= default_sentinel.h 483IT_HEADERS+= distance.h 484IT_HEADERS+= empty.h 485IT_HEADERS+= erase_if_container.h 486IT_HEADERS+= front_insert_iterator.h 487IT_HEADERS+= incrementable_traits.h 488IT_HEADERS+= insert_iterator.h 489IT_HEADERS+= istream_iterator.h 490IT_HEADERS+= istreambuf_iterator.h 491IT_HEADERS+= iter_move.h 492IT_HEADERS+= iter_swap.h 493IT_HEADERS+= iterator.h 494IT_HEADERS+= iterator_traits.h 495IT_HEADERS+= move_iterator.h 496IT_HEADERS+= next.h 497IT_HEADERS+= ostream_iterator.h 498IT_HEADERS+= ostreambuf_iterator.h 499IT_HEADERS+= prev.h 500IT_HEADERS+= projected.h 501IT_HEADERS+= readable_traits.h 502IT_HEADERS+= reverse_access.h 503IT_HEADERS+= reverse_iterator.h 504IT_HEADERS+= size.h 505IT_HEADERS+= unreachable_sentinel.h 506IT_HEADERS+= wrap_iter.h 507.for hdr in ${IT_HEADERS} 508IT+= ${HDRDIR}/__iterator/${hdr} 509.endfor 510 511INCSGROUPS+= MEM 512MEMDIR= ${CXXINCLUDEDIR}/__memory 513MEM_HEADERS+= addressof.h 514MEM_HEADERS+= allocation_guard.h 515MEM_HEADERS+= allocator.h 516MEM_HEADERS+= allocator_arg_t.h 517MEM_HEADERS+= allocator_traits.h 518MEM_HEADERS+= auto_ptr.h 519MEM_HEADERS+= compressed_pair.h 520MEM_HEADERS+= construct_at.h 521MEM_HEADERS+= pointer_traits.h 522MEM_HEADERS+= raw_storage_iterator.h 523MEM_HEADERS+= shared_ptr.h 524MEM_HEADERS+= temporary_buffer.h 525MEM_HEADERS+= uninitialized_algorithms.h 526MEM_HEADERS+= unique_ptr.h 527MEM_HEADERS+= uses_allocator.h 528.for hdr in ${MEM_HEADERS} 529MEM+= ${HDRDIR}/__memory/${hdr} 530.endfor 531 532INCSGROUPS+= NUM 533NUMDIR= ${CXXINCLUDEDIR}/__numeric 534NUM_HEADERS+= accumulate.h 535NUM_HEADERS+= adjacent_difference.h 536NUM_HEADERS+= exclusive_scan.h 537NUM_HEADERS+= gcd_lcm.h 538NUM_HEADERS+= inclusive_scan.h 539NUM_HEADERS+= inner_product.h 540NUM_HEADERS+= iota.h 541NUM_HEADERS+= midpoint.h 542NUM_HEADERS+= partial_sum.h 543NUM_HEADERS+= reduce.h 544NUM_HEADERS+= transform_exclusive_scan.h 545NUM_HEADERS+= transform_inclusive_scan.h 546NUM_HEADERS+= transform_reduce.h 547.for hdr in ${NUM_HEADERS} 548NUM+= ${HDRDIR}/__numeric/${hdr} 549.endfor 550 551INCSGROUPS+= RND 552RNDDIR= ${CXXINCLUDEDIR}/__random 553RND_HEADERS+= bernoulli_distribution.h 554RND_HEADERS+= binomial_distribution.h 555RND_HEADERS+= cauchy_distribution.h 556RND_HEADERS+= chi_squared_distribution.h 557RND_HEADERS+= default_random_engine.h 558RND_HEADERS+= discard_block_engine.h 559RND_HEADERS+= discrete_distribution.h 560RND_HEADERS+= exponential_distribution.h 561RND_HEADERS+= extreme_value_distribution.h 562RND_HEADERS+= fisher_f_distribution.h 563RND_HEADERS+= gamma_distribution.h 564RND_HEADERS+= generate_canonical.h 565RND_HEADERS+= geometric_distribution.h 566RND_HEADERS+= independent_bits_engine.h 567RND_HEADERS+= is_seed_sequence.h 568RND_HEADERS+= knuth_b.h 569RND_HEADERS+= linear_congruential_engine.h 570RND_HEADERS+= log2.h 571RND_HEADERS+= lognormal_distribution.h 572RND_HEADERS+= mersenne_twister_engine.h 573RND_HEADERS+= negative_binomial_distribution.h 574RND_HEADERS+= normal_distribution.h 575RND_HEADERS+= piecewise_constant_distribution.h 576RND_HEADERS+= piecewise_linear_distribution.h 577RND_HEADERS+= poisson_distribution.h 578RND_HEADERS+= random_device.h 579RND_HEADERS+= ranlux.h 580RND_HEADERS+= seed_seq.h 581RND_HEADERS+= shuffle_order_engine.h 582RND_HEADERS+= student_t_distribution.h 583RND_HEADERS+= subtract_with_carry_engine.h 584RND_HEADERS+= uniform_int_distribution.h 585RND_HEADERS+= uniform_random_bit_generator.h 586RND_HEADERS+= uniform_real_distribution.h 587RND_HEADERS+= weibull_distribution.h 588.for hdr in ${RND_HEADERS} 589RND+= ${HDRDIR}/__random/${hdr} 590.endfor 591 592INCSGROUPS+= RNG 593RNGDIR= ${CXXINCLUDEDIR}/__ranges 594RNG_HEADERS+= access.h 595RNG_HEADERS+= all.h 596RNG_HEADERS+= common_view.h 597RNG_HEADERS+= concepts.h 598RNG_HEADERS+= copyable_box.h 599RNG_HEADERS+= counted.h 600RNG_HEADERS+= dangling.h 601RNG_HEADERS+= data.h 602RNG_HEADERS+= drop_view.h 603RNG_HEADERS+= empty.h 604RNG_HEADERS+= empty_view.h 605RNG_HEADERS+= enable_borrowed_range.h 606RNG_HEADERS+= enable_view.h 607RNG_HEADERS+= iota_view.h 608RNG_HEADERS+= join_view.h 609RNG_HEADERS+= non_propagating_cache.h 610RNG_HEADERS+= range_adaptor.h 611RNG_HEADERS+= ref_view.h 612RNG_HEADERS+= reverse_view.h 613RNG_HEADERS+= single_view.h 614RNG_HEADERS+= size.h 615RNG_HEADERS+= subrange.h 616RNG_HEADERS+= take_view.h 617RNG_HEADERS+= transform_view.h 618RNG_HEADERS+= view_interface.h 619.for hdr in ${RNG_HEADERS} 620RNG+= ${HDRDIR}/__ranges/${hdr} 621.endfor 622 623INCSGROUPS+= THR 624THRDIR= ${CXXINCLUDEDIR}/__thread 625THR_HEADERS+= poll_with_backoff.h 626.for hdr in ${THR_HEADERS} 627THR+= ${HDRDIR}/__thread/${hdr} 628.endfor 629 630INCSGROUPS+= UTL 631UTLDIR= ${CXXINCLUDEDIR}/__utility 632UTL_HEADERS+= as_const.h 633UTL_HEADERS+= cmp.h 634UTL_HEADERS+= decay_copy.h 635UTL_HEADERS+= declval.h 636UTL_HEADERS+= exchange.h 637UTL_HEADERS+= forward.h 638UTL_HEADERS+= in_place.h 639UTL_HEADERS+= integer_sequence.h 640UTL_HEADERS+= move.h 641UTL_HEADERS+= pair.h 642UTL_HEADERS+= piecewise_construct.h 643UTL_HEADERS+= priority_tag.h 644UTL_HEADERS+= rel_ops.h 645UTL_HEADERS+= swap.h 646UTL_HEADERS+= to_underlying.h 647.for hdr in ${UTL_HEADERS} 648UTL+= ${HDRDIR}/__utility/${hdr} 649.endfor 650 651INCSGROUPS+= VAR 652VARDIR= ${CXXINCLUDEDIR}/__variant 653VAR_HEADERS+= monostate.h 654.for hdr in ${VAR_HEADERS} 655VAR+= ${HDRDIR}/__variant/${hdr} 656.endfor 657 658INCSGROUPS+= EXP 659EXPDIR= ${CXXINCLUDEDIR}/experimental 660EXP_HEADERS+= __config 661EXP_HEADERS+= __memory 662EXP_HEADERS+= algorithm 663EXP_HEADERS+= coroutine 664EXP_HEADERS+= deque 665EXP_HEADERS+= filesystem 666EXP_HEADERS+= forward_list 667EXP_HEADERS+= functional 668EXP_HEADERS+= iterator 669EXP_HEADERS+= list 670EXP_HEADERS+= map 671EXP_HEADERS+= memory_resource 672EXP_HEADERS+= propagate_const 673EXP_HEADERS+= regex 674EXP_HEADERS+= set 675EXP_HEADERS+= simd 676EXP_HEADERS+= string 677EXP_HEADERS+= type_traits 678EXP_HEADERS+= unordered_map 679EXP_HEADERS+= unordered_set 680EXP_HEADERS+= utility 681EXP_HEADERS+= vector 682.for hdr in ${EXP_HEADERS} 683EXP+= ${HDRDIR}/experimental/${hdr} 684.endfor 685 686INCSGROUPS+= EXT 687EXTDIR= ${CXXINCLUDEDIR}/ext 688EXT_HEADERS+= __hash 689EXT_HEADERS+= hash_map 690EXT_HEADERS+= hash_set 691.for hdr in ${EXT_HEADERS} 692EXT+= ${HDRDIR}/ext/${hdr} 693.endfor 694 695.include <bsd.lib.mk> 696