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_fill.h 340ALG_HEADERS+= ranges_fill_n.h 341ALG_HEADERS+= ranges_find.h 342ALG_HEADERS+= ranges_find_first_of.h 343ALG_HEADERS+= ranges_find_if.h 344ALG_HEADERS+= ranges_find_if_not.h 345ALG_HEADERS+= ranges_for_each.h 346ALG_HEADERS+= ranges_for_each_n.h 347ALG_HEADERS+= ranges_is_partitioned.h 348ALG_HEADERS+= ranges_is_sorted.h 349ALG_HEADERS+= ranges_is_sorted_until.h 350ALG_HEADERS+= ranges_lexicographical_compare.h 351ALG_HEADERS+= ranges_lower_bound.h 352ALG_HEADERS+= ranges_max.h 353ALG_HEADERS+= ranges_max_element.h 354ALG_HEADERS+= ranges_min.h 355ALG_HEADERS+= ranges_min_element.h 356ALG_HEADERS+= ranges_minmax.h 357ALG_HEADERS+= ranges_minmax_element.h 358ALG_HEADERS+= ranges_mismatch.h 359ALG_HEADERS+= ranges_move.h 360ALG_HEADERS+= ranges_move_backward.h 361ALG_HEADERS+= ranges_none_of.h 362ALG_HEADERS+= ranges_replace.h 363ALG_HEADERS+= ranges_replace_if.h 364ALG_HEADERS+= ranges_reverse.h 365ALG_HEADERS+= ranges_sort.h 366ALG_HEADERS+= ranges_stable_sort.h 367ALG_HEADERS+= ranges_swap_ranges.h 368ALG_HEADERS+= ranges_transform.h 369ALG_HEADERS+= ranges_upper_bound.h 370ALG_HEADERS+= remove.h 371ALG_HEADERS+= remove_copy.h 372ALG_HEADERS+= remove_copy_if.h 373ALG_HEADERS+= remove_if.h 374ALG_HEADERS+= replace.h 375ALG_HEADERS+= replace_copy.h 376ALG_HEADERS+= replace_copy_if.h 377ALG_HEADERS+= replace_if.h 378ALG_HEADERS+= reverse.h 379ALG_HEADERS+= reverse_copy.h 380ALG_HEADERS+= rotate.h 381ALG_HEADERS+= rotate_copy.h 382ALG_HEADERS+= sample.h 383ALG_HEADERS+= search.h 384ALG_HEADERS+= search_n.h 385ALG_HEADERS+= set_difference.h 386ALG_HEADERS+= set_intersection.h 387ALG_HEADERS+= set_symmetric_difference.h 388ALG_HEADERS+= set_union.h 389ALG_HEADERS+= shift_left.h 390ALG_HEADERS+= shift_right.h 391ALG_HEADERS+= shuffle.h 392ALG_HEADERS+= sift_down.h 393ALG_HEADERS+= sort.h 394ALG_HEADERS+= sort_heap.h 395ALG_HEADERS+= stable_partition.h 396ALG_HEADERS+= stable_sort.h 397ALG_HEADERS+= swap_ranges.h 398ALG_HEADERS+= transform.h 399ALG_HEADERS+= unique.h 400ALG_HEADERS+= unique_copy.h 401ALG_HEADERS+= unwrap_iter.h 402ALG_HEADERS+= upper_bound.h 403.for hdr in ${ALG_HEADERS} 404ALG+= ${HDRDIR}/__algorithm/${hdr} 405.endfor 406 407INCSGROUPS+= BIT 408BITDIR= ${CXXINCLUDEDIR}/__bit 409BIT_HEADERS+= bit_cast.h 410BIT_HEADERS+= byteswap.h 411.for hdr in ${BIT_HEADERS} 412BIT+= ${HDRDIR}/__bit/${hdr} 413.endfor 414 415INCSGROUPS+= CHC 416CHCDIR= ${CXXINCLUDEDIR}/__charconv 417CHC_HEADERS+= chars_format.h 418CHC_HEADERS+= from_chars_result.h 419CHC_HEADERS+= tables.h 420CHC_HEADERS+= to_chars_base_10.h 421CHC_HEADERS+= to_chars_result.h 422.for hdr in ${CHC_HEADERS} 423CHC+= ${HDRDIR}/__charconv/${hdr} 424.endfor 425 426INCSGROUPS+= CHR 427CHRDIR= ${CXXINCLUDEDIR}/__chrono 428CHR_HEADERS+= calendar.h 429CHR_HEADERS+= convert_to_timespec.h 430CHR_HEADERS+= day.h 431CHR_HEADERS+= duration.h 432CHR_HEADERS+= file_clock.h 433CHR_HEADERS+= hh_mm_ss.h 434CHR_HEADERS+= high_resolution_clock.h 435CHR_HEADERS+= literals.h 436CHR_HEADERS+= month.h 437CHR_HEADERS+= month_weekday.h 438CHR_HEADERS+= monthday.h 439CHR_HEADERS+= steady_clock.h 440CHR_HEADERS+= system_clock.h 441CHR_HEADERS+= time_point.h 442CHR_HEADERS+= weekday.h 443CHR_HEADERS+= year.h 444CHR_HEADERS+= year_month.h 445CHR_HEADERS+= year_month_day.h 446CHR_HEADERS+= year_month_weekday.h 447.for hdr in ${CHR_HEADERS} 448CHR+= ${HDRDIR}/__chrono/${hdr} 449.endfor 450 451INCSGROUPS+= CMP 452CMPDIR= ${CXXINCLUDEDIR}/__compare 453CMP_HEADERS+= common_comparison_category.h 454CMP_HEADERS+= compare_partial_order_fallback.h 455CMP_HEADERS+= compare_strong_order_fallback.h 456CMP_HEADERS+= compare_three_way.h 457CMP_HEADERS+= compare_three_way_result.h 458CMP_HEADERS+= compare_weak_order_fallback.h 459CMP_HEADERS+= is_eq.h 460CMP_HEADERS+= ordering.h 461CMP_HEADERS+= partial_order.h 462CMP_HEADERS+= strong_order.h 463CMP_HEADERS+= synth_three_way.h 464CMP_HEADERS+= three_way_comparable.h 465CMP_HEADERS+= weak_order.h 466.for hdr in ${CMP_HEADERS} 467CMP+= ${HDRDIR}/__compare/${hdr} 468.endfor 469 470INCSGROUPS+= CON 471CONDIR= ${CXXINCLUDEDIR}/__concepts 472CON_HEADERS+= arithmetic.h 473CON_HEADERS+= assignable.h 474CON_HEADERS+= boolean_testable.h 475CON_HEADERS+= class_or_enum.h 476CON_HEADERS+= common_reference_with.h 477CON_HEADERS+= common_with.h 478CON_HEADERS+= constructible.h 479CON_HEADERS+= convertible_to.h 480CON_HEADERS+= copyable.h 481CON_HEADERS+= derived_from.h 482CON_HEADERS+= destructible.h 483CON_HEADERS+= different_from.h 484CON_HEADERS+= equality_comparable.h 485CON_HEADERS+= invocable.h 486CON_HEADERS+= movable.h 487CON_HEADERS+= predicate.h 488CON_HEADERS+= regular.h 489CON_HEADERS+= relation.h 490CON_HEADERS+= same_as.h 491CON_HEADERS+= semiregular.h 492CON_HEADERS+= swappable.h 493CON_HEADERS+= totally_ordered.h 494.for hdr in ${CON_HEADERS} 495CON+= ${HDRDIR}/__concepts/${hdr} 496.endfor 497 498INCSGROUPS+= COR 499CORDIR= ${CXXINCLUDEDIR}/__coroutine 500COR_HEADERS+= coroutine_handle.h 501COR_HEADERS+= coroutine_traits.h 502COR_HEADERS+= noop_coroutine_handle.h 503COR_HEADERS+= trivial_awaitables.h 504.for hdr in ${COR_HEADERS} 505COR+= ${HDRDIR}/__coroutine/${hdr} 506.endfor 507 508INCSGROUPS+= FS 509FSDIR= ${CXXINCLUDEDIR}/__filesystem 510FS_HEADERS+= copy_options.h 511FS_HEADERS+= directory_entry.h 512FS_HEADERS+= directory_iterator.h 513FS_HEADERS+= directory_options.h 514FS_HEADERS+= file_status.h 515FS_HEADERS+= file_time_type.h 516FS_HEADERS+= file_type.h 517FS_HEADERS+= filesystem_error.h 518FS_HEADERS+= operations.h 519FS_HEADERS+= path.h 520FS_HEADERS+= path_iterator.h 521FS_HEADERS+= perm_options.h 522FS_HEADERS+= perms.h 523FS_HEADERS+= recursive_directory_iterator.h 524FS_HEADERS+= space_info.h 525FS_HEADERS+= u8path.h 526.for hdr in ${FS_HEADERS} 527FS+= ${HDRDIR}/__filesystem/${hdr} 528.endfor 529 530INCSGROUPS+= FMT 531FMTDIR= ${CXXINCLUDEDIR}/__format 532FMT_HEADERS+= buffer.h 533FMT_HEADERS+= concepts.h 534FMT_HEADERS+= enable_insertable.h 535FMT_HEADERS+= format_arg.h 536FMT_HEADERS+= format_arg_store.h 537FMT_HEADERS+= format_args.h 538FMT_HEADERS+= format_context.h 539FMT_HEADERS+= format_error.h 540FMT_HEADERS+= format_fwd.h 541FMT_HEADERS+= format_parse_context.h 542FMT_HEADERS+= format_string.h 543FMT_HEADERS+= format_to_n_result.h 544FMT_HEADERS+= formatter.h 545FMT_HEADERS+= formatter_bool.h 546FMT_HEADERS+= formatter_char.h 547FMT_HEADERS+= formatter_floating_point.h 548FMT_HEADERS+= formatter_integer.h 549FMT_HEADERS+= formatter_integral.h 550FMT_HEADERS+= formatter_output.h 551FMT_HEADERS+= formatter_pointer.h 552FMT_HEADERS+= formatter_string.h 553FMT_HEADERS+= parser_std_format_spec.h 554.for hdr in ${FMT_HEADERS} 555FMT+= ${HDRDIR}/__format/${hdr} 556.endfor 557 558INCSGROUPS+= FUN 559FUNDIR= ${CXXINCLUDEDIR}/__functional 560FUN_HEADERS+= binary_function.h 561FUN_HEADERS+= binary_negate.h 562FUN_HEADERS+= bind.h 563FUN_HEADERS+= bind_back.h 564FUN_HEADERS+= bind_front.h 565FUN_HEADERS+= binder1st.h 566FUN_HEADERS+= binder2nd.h 567FUN_HEADERS+= boyer_moore_searcher.h 568FUN_HEADERS+= compose.h 569FUN_HEADERS+= default_searcher.h 570FUN_HEADERS+= function.h 571FUN_HEADERS+= hash.h 572FUN_HEADERS+= identity.h 573FUN_HEADERS+= invoke.h 574FUN_HEADERS+= is_transparent.h 575FUN_HEADERS+= mem_fn.h 576FUN_HEADERS+= mem_fun_ref.h 577FUN_HEADERS+= not_fn.h 578FUN_HEADERS+= operations.h 579FUN_HEADERS+= perfect_forward.h 580FUN_HEADERS+= pointer_to_binary_function.h 581FUN_HEADERS+= pointer_to_unary_function.h 582FUN_HEADERS+= ranges_operations.h 583FUN_HEADERS+= reference_wrapper.h 584FUN_HEADERS+= unary_function.h 585FUN_HEADERS+= unary_negate.h 586FUN_HEADERS+= unwrap_ref.h 587FUN_HEADERS+= weak_result_type.h 588.for hdr in ${FUN_HEADERS} 589FUN+= ${HDRDIR}/__functional/${hdr} 590.endfor 591 592INCSGROUPS+= FWD 593FWDDIR= ${CXXINCLUDEDIR}/__fwd 594FWD_HEADERS+= span.h 595FWD_HEADERS+= string_view.h 596.for hdr in ${FWD_HEADERS} 597FWD+= ${HDRDIR}/__fwd/${hdr} 598.endfor 599 600INCSGROUPS+= IOS 601IOSDIR= ${CXXINCLUDEDIR}/__ios 602IOS_HEADERS+= fpos.h 603.for hdr in ${IOS_HEADERS} 604IOS+= ${HDRDIR}/__ios/${hdr} 605.endfor 606 607INCSGROUPS+= IT 608ITDIR= ${CXXINCLUDEDIR}/__iterator 609IT_HEADERS+= access.h 610IT_HEADERS+= advance.h 611IT_HEADERS+= back_insert_iterator.h 612IT_HEADERS+= bounded_iter.h 613IT_HEADERS+= common_iterator.h 614IT_HEADERS+= concepts.h 615IT_HEADERS+= counted_iterator.h 616IT_HEADERS+= data.h 617IT_HEADERS+= default_sentinel.h 618IT_HEADERS+= distance.h 619IT_HEADERS+= empty.h 620IT_HEADERS+= erase_if_container.h 621IT_HEADERS+= front_insert_iterator.h 622IT_HEADERS+= incrementable_traits.h 623IT_HEADERS+= indirectly_comparable.h 624IT_HEADERS+= insert_iterator.h 625IT_HEADERS+= istream_iterator.h 626IT_HEADERS+= istreambuf_iterator.h 627IT_HEADERS+= iter_move.h 628IT_HEADERS+= iter_swap.h 629IT_HEADERS+= iterator.h 630IT_HEADERS+= iterator_traits.h 631IT_HEADERS+= mergeable.h 632IT_HEADERS+= move_iterator.h 633IT_HEADERS+= move_sentinel.h 634IT_HEADERS+= next.h 635IT_HEADERS+= ostream_iterator.h 636IT_HEADERS+= ostreambuf_iterator.h 637IT_HEADERS+= permutable.h 638IT_HEADERS+= prev.h 639IT_HEADERS+= projected.h 640IT_HEADERS+= readable_traits.h 641IT_HEADERS+= reverse_access.h 642IT_HEADERS+= reverse_iterator.h 643IT_HEADERS+= size.h 644IT_HEADERS+= sortable.h 645IT_HEADERS+= unreachable_sentinel.h 646IT_HEADERS+= wrap_iter.h 647.for hdr in ${IT_HEADERS} 648IT+= ${HDRDIR}/__iterator/${hdr} 649.endfor 650 651INCSGROUPS+= MEM 652MEMDIR= ${CXXINCLUDEDIR}/__memory 653MEM_HEADERS+= addressof.h 654MEM_HEADERS+= allocate_at_least.h 655MEM_HEADERS+= allocation_guard.h 656MEM_HEADERS+= allocator.h 657MEM_HEADERS+= allocator_arg_t.h 658MEM_HEADERS+= allocator_traits.h 659MEM_HEADERS+= assume_aligned.h 660MEM_HEADERS+= auto_ptr.h 661MEM_HEADERS+= compressed_pair.h 662MEM_HEADERS+= concepts.h 663MEM_HEADERS+= construct_at.h 664MEM_HEADERS+= pointer_traits.h 665MEM_HEADERS+= ranges_construct_at.h 666MEM_HEADERS+= ranges_uninitialized_algorithms.h 667MEM_HEADERS+= raw_storage_iterator.h 668MEM_HEADERS+= shared_ptr.h 669MEM_HEADERS+= temporary_buffer.h 670MEM_HEADERS+= uninitialized_algorithms.h 671MEM_HEADERS+= unique_ptr.h 672MEM_HEADERS+= uses_allocator.h 673MEM_HEADERS+= voidify.h 674.for hdr in ${MEM_HEADERS} 675MEM+= ${HDRDIR}/__memory/${hdr} 676.endfor 677 678INCSGROUPS+= NUM 679NUMDIR= ${CXXINCLUDEDIR}/__numeric 680NUM_HEADERS+= accumulate.h 681NUM_HEADERS+= adjacent_difference.h 682NUM_HEADERS+= exclusive_scan.h 683NUM_HEADERS+= gcd_lcm.h 684NUM_HEADERS+= inclusive_scan.h 685NUM_HEADERS+= inner_product.h 686NUM_HEADERS+= iota.h 687NUM_HEADERS+= midpoint.h 688NUM_HEADERS+= partial_sum.h 689NUM_HEADERS+= reduce.h 690NUM_HEADERS+= transform_exclusive_scan.h 691NUM_HEADERS+= transform_inclusive_scan.h 692NUM_HEADERS+= transform_reduce.h 693.for hdr in ${NUM_HEADERS} 694NUM+= ${HDRDIR}/__numeric/${hdr} 695.endfor 696 697INCSGROUPS+= RND 698RNDDIR= ${CXXINCLUDEDIR}/__random 699RND_HEADERS+= bernoulli_distribution.h 700RND_HEADERS+= binomial_distribution.h 701RND_HEADERS+= cauchy_distribution.h 702RND_HEADERS+= chi_squared_distribution.h 703RND_HEADERS+= clamp_to_integral.h 704RND_HEADERS+= default_random_engine.h 705RND_HEADERS+= discard_block_engine.h 706RND_HEADERS+= discrete_distribution.h 707RND_HEADERS+= exponential_distribution.h 708RND_HEADERS+= extreme_value_distribution.h 709RND_HEADERS+= fisher_f_distribution.h 710RND_HEADERS+= gamma_distribution.h 711RND_HEADERS+= generate_canonical.h 712RND_HEADERS+= geometric_distribution.h 713RND_HEADERS+= independent_bits_engine.h 714RND_HEADERS+= is_seed_sequence.h 715RND_HEADERS+= is_valid.h 716RND_HEADERS+= knuth_b.h 717RND_HEADERS+= linear_congruential_engine.h 718RND_HEADERS+= log2.h 719RND_HEADERS+= lognormal_distribution.h 720RND_HEADERS+= mersenne_twister_engine.h 721RND_HEADERS+= negative_binomial_distribution.h 722RND_HEADERS+= normal_distribution.h 723RND_HEADERS+= piecewise_constant_distribution.h 724RND_HEADERS+= piecewise_linear_distribution.h 725RND_HEADERS+= poisson_distribution.h 726RND_HEADERS+= random_device.h 727RND_HEADERS+= ranlux.h 728RND_HEADERS+= seed_seq.h 729RND_HEADERS+= shuffle_order_engine.h 730RND_HEADERS+= student_t_distribution.h 731RND_HEADERS+= subtract_with_carry_engine.h 732RND_HEADERS+= uniform_int_distribution.h 733RND_HEADERS+= uniform_random_bit_generator.h 734RND_HEADERS+= uniform_real_distribution.h 735RND_HEADERS+= weibull_distribution.h 736.for hdr in ${RND_HEADERS} 737RND+= ${HDRDIR}/__random/${hdr} 738.endfor 739 740INCSGROUPS+= RNG 741RNGDIR= ${CXXINCLUDEDIR}/__ranges 742RNG_HEADERS+= access.h 743RNG_HEADERS+= all.h 744RNG_HEADERS+= common_view.h 745RNG_HEADERS+= concepts.h 746RNG_HEADERS+= copyable_box.h 747RNG_HEADERS+= counted.h 748RNG_HEADERS+= dangling.h 749RNG_HEADERS+= data.h 750RNG_HEADERS+= drop_view.h 751RNG_HEADERS+= empty.h 752RNG_HEADERS+= empty_view.h 753RNG_HEADERS+= enable_borrowed_range.h 754RNG_HEADERS+= enable_view.h 755RNG_HEADERS+= filter_view.h 756RNG_HEADERS+= iota_view.h 757RNG_HEADERS+= join_view.h 758RNG_HEADERS+= lazy_split_view.h 759RNG_HEADERS+= non_propagating_cache.h 760RNG_HEADERS+= owning_view.h 761RNG_HEADERS+= range_adaptor.h 762RNG_HEADERS+= rbegin.h 763RNG_HEADERS+= ref_view.h 764RNG_HEADERS+= rend.h 765RNG_HEADERS+= reverse_view.h 766RNG_HEADERS+= single_view.h 767RNG_HEADERS+= size.h 768RNG_HEADERS+= subrange.h 769RNG_HEADERS+= take_view.h 770RNG_HEADERS+= transform_view.h 771RNG_HEADERS+= view_interface.h 772RNG_HEADERS+= views.h 773RNG_HEADERS+= zip_view.h 774.for hdr in ${RNG_HEADERS} 775RNG+= ${HDRDIR}/__ranges/${hdr} 776.endfor 777 778INCSGROUPS+= STR 779STRDIR= ${CXXINCLUDEDIR}/__string 780STR_HEADERS+= char_traits.h 781STR_HEADERS+= extern_template_lists.h 782.for hdr in ${STR_HEADERS} 783STR+= ${HDRDIR}/__string/${hdr} 784.endfor 785 786INCSGROUPS+= THR 787THRDIR= ${CXXINCLUDEDIR}/__thread 788THR_HEADERS+= poll_with_backoff.h 789THR_HEADERS+= timed_backoff_policy.h 790.for hdr in ${THR_HEADERS} 791THR+= ${HDRDIR}/__thread/${hdr} 792.endfor 793 794INCSGROUPS+= TTR 795TTRDIR= ${CXXINCLUDEDIR}/__type_traits 796TTR_HEADERS+= add_const.h 797TTR_HEADERS+= add_cv.h 798TTR_HEADERS+= add_lvalue_reference.h 799TTR_HEADERS+= add_pointer.h 800TTR_HEADERS+= add_rvalue_reference.h 801TTR_HEADERS+= add_volatile.h 802TTR_HEADERS+= alignment_of.h 803TTR_HEADERS+= apply_cv.h 804TTR_HEADERS+= conditional.h 805TTR_HEADERS+= conjunction.h 806TTR_HEADERS+= decay.h 807TTR_HEADERS+= disjunction.h 808TTR_HEADERS+= enable_if.h 809TTR_HEADERS+= extent.h 810TTR_HEADERS+= has_unique_object_representation.h 811TTR_HEADERS+= has_virtual_destructor.h 812TTR_HEADERS+= integral_constant.h 813TTR_HEADERS+= is_abstract.h 814TTR_HEADERS+= is_aggregate.h 815TTR_HEADERS+= is_arithmetic.h 816TTR_HEADERS+= is_array.h 817TTR_HEADERS+= is_assignable.h 818TTR_HEADERS+= is_base_of.h 819TTR_HEADERS+= is_bounded_array.h 820TTR_HEADERS+= is_callable.h 821TTR_HEADERS+= is_class.h 822TTR_HEADERS+= is_compound.h 823TTR_HEADERS+= is_const.h 824TTR_HEADERS+= is_constant_evaluated.h 825TTR_HEADERS+= is_constructible.h 826TTR_HEADERS+= is_convertible.h 827TTR_HEADERS+= is_copy_assignable.h 828TTR_HEADERS+= is_copy_constructible.h 829TTR_HEADERS+= is_core_convertible.h 830TTR_HEADERS+= is_default_constructible.h 831TTR_HEADERS+= is_destructible.h 832TTR_HEADERS+= is_empty.h 833TTR_HEADERS+= is_enum.h 834TTR_HEADERS+= is_final.h 835TTR_HEADERS+= is_floating_point.h 836TTR_HEADERS+= is_function.h 837TTR_HEADERS+= is_fundamental.h 838TTR_HEADERS+= is_integral.h 839TTR_HEADERS+= is_literal_type.h 840TTR_HEADERS+= is_member_function_pointer.h 841TTR_HEADERS+= is_member_object_pointer.h 842TTR_HEADERS+= is_member_pointer.h 843TTR_HEADERS+= is_move_assignable.h 844TTR_HEADERS+= is_move_constructible.h 845TTR_HEADERS+= is_nothrow_assignable.h 846TTR_HEADERS+= is_nothrow_constructible.h 847TTR_HEADERS+= is_nothrow_copy_assignable.h 848TTR_HEADERS+= is_nothrow_copy_constructible.h 849TTR_HEADERS+= is_nothrow_default_constructible.h 850TTR_HEADERS+= is_nothrow_destructible.h 851TTR_HEADERS+= is_nothrow_move_assignable.h 852TTR_HEADERS+= is_nothrow_move_constructible.h 853TTR_HEADERS+= is_null_pointer.h 854TTR_HEADERS+= is_object.h 855TTR_HEADERS+= is_pod.h 856TTR_HEADERS+= is_pointer.h 857TTR_HEADERS+= is_polymorphic.h 858TTR_HEADERS+= is_reference.h 859TTR_HEADERS+= is_reference_wrapper.h 860TTR_HEADERS+= is_referenceable.h 861TTR_HEADERS+= is_same.h 862TTR_HEADERS+= is_scalar.h 863TTR_HEADERS+= is_scoped_enum.h 864TTR_HEADERS+= is_signed.h 865TTR_HEADERS+= is_standard_layout.h 866TTR_HEADERS+= is_trivial.h 867TTR_HEADERS+= is_trivially_assignable.h 868TTR_HEADERS+= is_trivially_constructible.h 869TTR_HEADERS+= is_trivially_copy_assignable.h 870TTR_HEADERS+= is_trivially_copy_constructible.h 871TTR_HEADERS+= is_trivially_copyable.h 872TTR_HEADERS+= is_trivially_default_constructible.h 873TTR_HEADERS+= is_trivially_destructible.h 874TTR_HEADERS+= is_trivially_move_assignable.h 875TTR_HEADERS+= is_trivially_move_constructible.h 876TTR_HEADERS+= is_unbounded_array.h 877TTR_HEADERS+= is_union.h 878TTR_HEADERS+= is_unsigned.h 879TTR_HEADERS+= is_void.h 880TTR_HEADERS+= is_volatile.h 881TTR_HEADERS+= negation.h 882TTR_HEADERS+= rank.h 883TTR_HEADERS+= remove_all_extents.h 884TTR_HEADERS+= remove_const.h 885TTR_HEADERS+= remove_cv.h 886TTR_HEADERS+= remove_extent.h 887TTR_HEADERS+= remove_pointer.h 888TTR_HEADERS+= remove_reference.h 889TTR_HEADERS+= remove_volatile.h 890TTR_HEADERS+= type_identity.h 891TTR_HEADERS+= underlying_type.h 892TTR_HEADERS+= void_t.h 893.for hdr in ${TTR_HEADERS} 894TTR+= ${HDRDIR}/__type_traits/${hdr} 895.endfor 896 897INCSGROUPS+= UTL 898UTLDIR= ${CXXINCLUDEDIR}/__utility 899UTL_HEADERS+= as_const.h 900UTL_HEADERS+= auto_cast.h 901UTL_HEADERS+= cmp.h 902UTL_HEADERS+= declval.h 903UTL_HEADERS+= exchange.h 904UTL_HEADERS+= forward.h 905UTL_HEADERS+= in_place.h 906UTL_HEADERS+= integer_sequence.h 907UTL_HEADERS+= move.h 908UTL_HEADERS+= pair.h 909UTL_HEADERS+= piecewise_construct.h 910UTL_HEADERS+= priority_tag.h 911UTL_HEADERS+= rel_ops.h 912UTL_HEADERS+= swap.h 913UTL_HEADERS+= to_underlying.h 914UTL_HEADERS+= transaction.h 915UTL_HEADERS+= unreachable.h 916.for hdr in ${UTL_HEADERS} 917UTL+= ${HDRDIR}/__utility/${hdr} 918.endfor 919 920INCSGROUPS+= VAR 921VARDIR= ${CXXINCLUDEDIR}/__variant 922VAR_HEADERS+= monostate.h 923.for hdr in ${VAR_HEADERS} 924VAR+= ${HDRDIR}/__variant/${hdr} 925.endfor 926 927INCSGROUPS+= EXP 928EXPDIR= ${CXXINCLUDEDIR}/experimental 929EXP_HEADERS+= __config 930EXP_HEADERS+= __memory 931EXP_HEADERS+= algorithm 932EXP_HEADERS+= coroutine 933EXP_HEADERS+= deque 934EXP_HEADERS+= forward_list 935EXP_HEADERS+= functional 936EXP_HEADERS+= iterator 937EXP_HEADERS+= list 938EXP_HEADERS+= map 939EXP_HEADERS+= memory_resource 940EXP_HEADERS+= propagate_const 941EXP_HEADERS+= regex 942EXP_HEADERS+= set 943EXP_HEADERS+= simd 944EXP_HEADERS+= string 945EXP_HEADERS+= type_traits 946EXP_HEADERS+= unordered_map 947EXP_HEADERS+= unordered_set 948EXP_HEADERS+= utility 949EXP_HEADERS+= vector 950.for hdr in ${EXP_HEADERS} 951EXP+= ${HDRDIR}/experimental/${hdr} 952.endfor 953 954INCSGROUPS+= EXT 955EXTDIR= ${CXXINCLUDEDIR}/ext 956EXT_HEADERS+= __hash 957EXT_HEADERS+= hash_map 958EXT_HEADERS+= hash_set 959.for hdr in ${EXT_HEADERS} 960EXT+= ${HDRDIR}/ext/${hdr} 961.endfor 962 963.include <bsd.lib.mk> 964