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