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