17a984708SDavid Chisnall# $FreeBSD$ 27a984708SDavid Chisnall 3aa7703beSBaptiste Daroussin.include <src.opts.mk> 4aa7703beSBaptiste Daroussin 5c389411cSGlen BarberPACKAGE= clibs 63f910b91SDimitry Andric_LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt 73f910b91SDimitry AndricHDRDIR= ${SRCTOP}/contrib/libc++/include 83f910b91SDimitry AndricSRCDIR= ${SRCTOP}/contrib/libc++/src 97a984708SDavid ChisnallCXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR} 10c455b924SAndrew Turner.if ${MACHINE_CPUARCH} == "arm" 11c455b924SAndrew TurnerSTATIC_CXXFLAGS+= -mlong-calls 12c455b924SAndrew Turner.endif 137a984708SDavid Chisnall 147a984708SDavid Chisnall.PATH: ${SRCDIR} 157a984708SDavid Chisnall 167a984708SDavid ChisnallLIB= c++ 177a984708SDavid ChisnallSHLIB_MAJOR= 1 18e669ff37SDimitry AndricSHLIB_LDSCRIPT= libc++.ldscript 197a984708SDavid Chisnall 203f910b91SDimitry AndricSRCS+= algorithm.cpp 213f910b91SDimitry AndricSRCS+= any.cpp 223f910b91SDimitry AndricSRCS+= bind.cpp 234ba319b5SDimitry AndricSRCS+= charconv.cpp 243f910b91SDimitry AndricSRCS+= chrono.cpp 253f910b91SDimitry AndricSRCS+= condition_variable.cpp 263f910b91SDimitry AndricSRCS+= debug.cpp 273f910b91SDimitry AndricSRCS+= exception.cpp 28540d2a8bSDimitry AndricSRCS+= functional.cpp 293f910b91SDimitry AndricSRCS+= future.cpp 303f910b91SDimitry AndricSRCS+= hash.cpp 313f910b91SDimitry AndricSRCS+= ios.cpp 323f910b91SDimitry AndricSRCS+= iostream.cpp 333f910b91SDimitry AndricSRCS+= locale.cpp 343f910b91SDimitry AndricSRCS+= memory.cpp 353f910b91SDimitry AndricSRCS+= mutex.cpp 363f910b91SDimitry AndricSRCS+= new.cpp 373f910b91SDimitry AndricSRCS+= optional.cpp 383f910b91SDimitry AndricSRCS+= random.cpp 393f910b91SDimitry AndricSRCS+= regex.cpp 403f910b91SDimitry AndricSRCS+= shared_mutex.cpp 413f910b91SDimitry AndricSRCS+= stdexcept.cpp 423f910b91SDimitry AndricSRCS+= string.cpp 433f910b91SDimitry AndricSRCS+= strstream.cpp 443f910b91SDimitry AndricSRCS+= system_error.cpp 453f910b91SDimitry AndricSRCS+= thread.cpp 463f910b91SDimitry AndricSRCS+= typeinfo.cpp 473f910b91SDimitry AndricSRCS+= utility.cpp 483f910b91SDimitry AndricSRCS+= valarray.cpp 495d77776cSDimitry AndricSRCS+= variant.cpp 5024d58133SDimitry AndricSRCS+= vector.cpp 51b5893f02SDimitry AndricSRCS+= filesystem/directory_iterator.cpp 52b5893f02SDimitry AndricSRCS+= filesystem/int128_builtins.cpp 53b5893f02SDimitry AndricSRCS+= filesystem/operations.cpp 547a984708SDavid Chisnall 553f910b91SDimitry AndricCXXRT_SRCS+= auxhelper.cc 563f910b91SDimitry AndricCXXRT_SRCS+= dynamic_cast.cc 573f910b91SDimitry AndricCXXRT_SRCS+= exception.cc 583f910b91SDimitry AndricCXXRT_SRCS+= guard.cc 593f910b91SDimitry AndricCXXRT_SRCS+= libelftc_dem_gnu3.c 603f910b91SDimitry AndricCXXRT_SRCS+= memory.cc 613f910b91SDimitry AndricCXXRT_SRCS+= stdexcept.cc 623f910b91SDimitry AndricCXXRT_SRCS+= terminate.cc 633f910b91SDimitry AndricCXXRT_SRCS+= typeinfo.cc 6415e154dfSDimitry Andric 6515e154dfSDimitry Andric.for _S in ${CXXRT_SRCS} 667533aa15SBryan DreweryCLEANFILES+= cxxrt_${_S} 6715e154dfSDimitry AndricSTATICOBJS+= cxxrt_${_S:R}.o 683c89d6b0SBryan Drewerycxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA 69b791fbe6SBryan Drewery ln -sf ${.ALLSRC} ${.TARGET} 7015e154dfSDimitry Andric.endfor 7115e154dfSDimitry Andric 727a984708SDavid ChisnallWARNS= 0 73302affcbSDimitry AndricCFLAGS+= -isystem ${HDRDIR} 74302affcbSDimitry AndricCFLAGS+= -isystem ${_LIBCXXRTDIR} 75302affcbSDimitry AndricCFLAGS+= -nostdinc++ 76302affcbSDimitry AndricCFLAGS+= -nostdlib 77302affcbSDimitry AndricCFLAGS+= -D_LIBCPP_BUILDING_LIBRARY 78302affcbSDimitry AndricCFLAGS+= -DLIBCXXRT 79*f5e04876SEnji CooperCXXSTD?= c++11 807a984708SDavid Chisnall 816b129086SBaptiste DaroussinLIBADD+= cxxrt 824f7ab58eSDimitry AndricINCSGROUPS= STD EXP EXT 837a984708SDavid Chisnall 843f910b91SDimitry AndricSTD_HEADERS+= __bit_reference 853f910b91SDimitry AndricSTD_HEADERS+= __bsd_locale_defaults.h 863f910b91SDimitry AndricSTD_HEADERS+= __bsd_locale_fallbacks.h 873f910b91SDimitry AndricSTD_HEADERS+= __config 883f910b91SDimitry AndricSTD_HEADERS+= __debug 894ba319b5SDimitry AndricSTD_HEADERS+= __errc 903f910b91SDimitry AndricSTD_HEADERS+= __functional_03 913f910b91SDimitry AndricSTD_HEADERS+= __functional_base 923f910b91SDimitry AndricSTD_HEADERS+= __functional_base_03 933f910b91SDimitry AndricSTD_HEADERS+= __hash_table 943f910b91SDimitry AndricSTD_HEADERS+= __libcpp_version 953f910b91SDimitry AndricSTD_HEADERS+= __locale 963f910b91SDimitry AndricSTD_HEADERS+= __mutex_base 974ba319b5SDimitry AndricSTD_HEADERS+= __node_handle 983f910b91SDimitry AndricSTD_HEADERS+= __nullptr 993f910b91SDimitry AndricSTD_HEADERS+= __split_buffer 1003f910b91SDimitry AndricSTD_HEADERS+= __sso_allocator 1013f910b91SDimitry AndricSTD_HEADERS+= __std_stream 1023f910b91SDimitry AndricSTD_HEADERS+= __string 1033f910b91SDimitry AndricSTD_HEADERS+= __threading_support 1043f910b91SDimitry AndricSTD_HEADERS+= __tree 1053f910b91SDimitry AndricSTD_HEADERS+= __tuple 106f9448bf3SDimitry AndricSTD_HEADERS+= __undef_macros 1073f910b91SDimitry AndricSTD_HEADERS+= algorithm 1083f910b91SDimitry AndricSTD_HEADERS+= any 1093f910b91SDimitry AndricSTD_HEADERS+= array 1103f910b91SDimitry AndricSTD_HEADERS+= atomic 111b5893f02SDimitry AndricSTD_HEADERS+= bit 1123f910b91SDimitry AndricSTD_HEADERS+= bitset 1133f910b91SDimitry AndricSTD_HEADERS+= cassert 1143f910b91SDimitry AndricSTD_HEADERS+= ccomplex 1153f910b91SDimitry AndricSTD_HEADERS+= cctype 1163f910b91SDimitry AndricSTD_HEADERS+= cerrno 1173f910b91SDimitry AndricSTD_HEADERS+= cfenv 1183f910b91SDimitry AndricSTD_HEADERS+= cfloat 1194ba319b5SDimitry AndricSTD_HEADERS+= charconv 1203f910b91SDimitry AndricSTD_HEADERS+= chrono 1213f910b91SDimitry AndricSTD_HEADERS+= cinttypes 1223f910b91SDimitry AndricSTD_HEADERS+= ciso646 1233f910b91SDimitry AndricSTD_HEADERS+= climits 1243f910b91SDimitry AndricSTD_HEADERS+= clocale 1253f910b91SDimitry AndricSTD_HEADERS+= cmath 1263f910b91SDimitry AndricSTD_HEADERS+= codecvt 1274ba319b5SDimitry AndricSTD_HEADERS+= compare 1283f910b91SDimitry AndricSTD_HEADERS+= complex 1293f910b91SDimitry AndricSTD_HEADERS+= complex.h 1303f910b91SDimitry AndricSTD_HEADERS+= condition_variable 1313f910b91SDimitry AndricSTD_HEADERS+= csetjmp 1323f910b91SDimitry AndricSTD_HEADERS+= csignal 1333f910b91SDimitry AndricSTD_HEADERS+= cstdarg 1343f910b91SDimitry AndricSTD_HEADERS+= cstdbool 1353f910b91SDimitry AndricSTD_HEADERS+= cstddef 1363f910b91SDimitry AndricSTD_HEADERS+= cstdint 1373f910b91SDimitry AndricSTD_HEADERS+= cstdio 1383f910b91SDimitry AndricSTD_HEADERS+= cstdlib 1393f910b91SDimitry AndricSTD_HEADERS+= cstring 1403f910b91SDimitry AndricSTD_HEADERS+= ctgmath 1413f910b91SDimitry AndricSTD_HEADERS+= ctime 1423f910b91SDimitry AndricSTD_HEADERS+= ctype.h 1433f910b91SDimitry AndricSTD_HEADERS+= cwchar 1443f910b91SDimitry AndricSTD_HEADERS+= cwctype 1453f910b91SDimitry AndricSTD_HEADERS+= deque 1463f910b91SDimitry AndricSTD_HEADERS+= errno.h 1473f910b91SDimitry AndricSTD_HEADERS+= exception 1484ba319b5SDimitry AndricSTD_HEADERS+= filesystem 1493f910b91SDimitry AndricSTD_HEADERS+= float.h 1503f910b91SDimitry AndricSTD_HEADERS+= forward_list 1513f910b91SDimitry AndricSTD_HEADERS+= fstream 1523f910b91SDimitry AndricSTD_HEADERS+= functional 1533f910b91SDimitry AndricSTD_HEADERS+= future 1543f910b91SDimitry AndricSTD_HEADERS+= initializer_list 1553f910b91SDimitry AndricSTD_HEADERS+= inttypes.h 1563f910b91SDimitry AndricSTD_HEADERS+= iomanip 1573f910b91SDimitry AndricSTD_HEADERS+= ios 1583f910b91SDimitry AndricSTD_HEADERS+= iosfwd 1593f910b91SDimitry AndricSTD_HEADERS+= iostream 1603f910b91SDimitry AndricSTD_HEADERS+= istream 1613f910b91SDimitry AndricSTD_HEADERS+= iterator 1623f910b91SDimitry AndricSTD_HEADERS+= limits 1633f910b91SDimitry AndricSTD_HEADERS+= limits.h 1643f910b91SDimitry AndricSTD_HEADERS+= list 1653f910b91SDimitry AndricSTD_HEADERS+= locale 1663f910b91SDimitry AndricSTD_HEADERS+= locale.h 1673f910b91SDimitry AndricSTD_HEADERS+= map 1683f910b91SDimitry AndricSTD_HEADERS+= math.h 1693f910b91SDimitry AndricSTD_HEADERS+= memory 1703f910b91SDimitry AndricSTD_HEADERS+= mutex 1713f910b91SDimitry AndricSTD_HEADERS+= new 1723f910b91SDimitry AndricSTD_HEADERS+= numeric 1733f910b91SDimitry AndricSTD_HEADERS+= optional 1743f910b91SDimitry AndricSTD_HEADERS+= ostream 1753f910b91SDimitry AndricSTD_HEADERS+= queue 1763f910b91SDimitry AndricSTD_HEADERS+= random 1773f910b91SDimitry AndricSTD_HEADERS+= ratio 1783f910b91SDimitry AndricSTD_HEADERS+= regex 1793f910b91SDimitry AndricSTD_HEADERS+= scoped_allocator 1803f910b91SDimitry AndricSTD_HEADERS+= set 1813f910b91SDimitry AndricSTD_HEADERS+= setjmp.h 1823f910b91SDimitry AndricSTD_HEADERS+= shared_mutex 1834ba319b5SDimitry AndricSTD_HEADERS+= span 1843f910b91SDimitry AndricSTD_HEADERS+= sstream 1853f910b91SDimitry AndricSTD_HEADERS+= stack 1863f910b91SDimitry AndricSTD_HEADERS+= stdbool.h 1873f910b91SDimitry AndricSTD_HEADERS+= stddef.h 1883f910b91SDimitry AndricSTD_HEADERS+= stdexcept 1893f910b91SDimitry AndricSTD_HEADERS+= stdint.h 1903f910b91SDimitry AndricSTD_HEADERS+= stdio.h 1913f910b91SDimitry AndricSTD_HEADERS+= stdlib.h 1923f910b91SDimitry AndricSTD_HEADERS+= streambuf 1933f910b91SDimitry AndricSTD_HEADERS+= string 1943f910b91SDimitry AndricSTD_HEADERS+= string.h 1953f910b91SDimitry AndricSTD_HEADERS+= string_view 1963f910b91SDimitry AndricSTD_HEADERS+= strstream 1973f910b91SDimitry AndricSTD_HEADERS+= system_error 1983f910b91SDimitry AndricSTD_HEADERS+= tgmath.h 1993f910b91SDimitry AndricSTD_HEADERS+= thread 2003f910b91SDimitry AndricSTD_HEADERS+= tuple 2013f910b91SDimitry AndricSTD_HEADERS+= type_traits 2023f910b91SDimitry AndricSTD_HEADERS+= typeindex 2033f910b91SDimitry AndricSTD_HEADERS+= typeinfo 2043f910b91SDimitry AndricSTD_HEADERS+= unordered_map 2053f910b91SDimitry AndricSTD_HEADERS+= unordered_set 2063f910b91SDimitry AndricSTD_HEADERS+= utility 2073f910b91SDimitry AndricSTD_HEADERS+= valarray 2083f910b91SDimitry AndricSTD_HEADERS+= variant 2093f910b91SDimitry AndricSTD_HEADERS+= vector 2104ba319b5SDimitry AndricSTD_HEADERS+= version 2113f910b91SDimitry AndricSTD_HEADERS+= wchar.h 2123f910b91SDimitry AndricSTD_HEADERS+= wctype.h 2133f910b91SDimitry Andric 2143f910b91SDimitry AndricRT_HEADERS+= cxxabi.h 2153f910b91SDimitry AndricRT_HEADERS+= unwind-arm.h 2163f910b91SDimitry AndricRT_HEADERS+= unwind-itanium.h 2173f910b91SDimitry AndricRT_HEADERS+= unwind.h 2187a984708SDavid Chisnall 2197a984708SDavid Chisnall.for hdr in ${STD_HEADERS} 2207a984708SDavid ChisnallSTD+= ${HDRDIR}/${hdr} 2211766eeafSBryan DreweryINCSLINKS+= ../${hdr} ${CXXINCLUDEDIR}/tr1/${hdr} 2227a984708SDavid Chisnall.endfor 223cd38c408SDimitry Andric.for hdr in ${RT_HEADERS} 2243c89d6b0SBryan DrewerySTD+= ${_LIBCXXRTDIR}/${hdr} 225cd38c408SDimitry Andric.endfor 2267a984708SDavid ChisnallSTDDIR= ${CXXINCLUDEDIR} 2277a984708SDavid Chisnall 2283f910b91SDimitry AndricEXP_HEADERS+= __config 2293f910b91SDimitry AndricEXP_HEADERS+= __memory 2303f910b91SDimitry AndricEXP_HEADERS+= algorithm 2313f910b91SDimitry AndricEXP_HEADERS+= any 2323f910b91SDimitry AndricEXP_HEADERS+= chrono 233302affcbSDimitry AndricEXP_HEADERS+= coroutine 2343f910b91SDimitry AndricEXP_HEADERS+= deque 2353f910b91SDimitry AndricEXP_HEADERS+= filesystem 2363f910b91SDimitry AndricEXP_HEADERS+= forward_list 2373f910b91SDimitry AndricEXP_HEADERS+= functional 2383f910b91SDimitry AndricEXP_HEADERS+= iterator 2393f910b91SDimitry AndricEXP_HEADERS+= list 2403f910b91SDimitry AndricEXP_HEADERS+= map 2413f910b91SDimitry AndricEXP_HEADERS+= memory_resource 2423f910b91SDimitry AndricEXP_HEADERS+= numeric 2433f910b91SDimitry AndricEXP_HEADERS+= optional 2443f910b91SDimitry AndricEXP_HEADERS+= propagate_const 2453f910b91SDimitry AndricEXP_HEADERS+= ratio 2463f910b91SDimitry AndricEXP_HEADERS+= regex 2473f910b91SDimitry AndricEXP_HEADERS+= set 2484ba319b5SDimitry AndricEXP_HEADERS+= simd 2493f910b91SDimitry AndricEXP_HEADERS+= string 2503f910b91SDimitry AndricEXP_HEADERS+= string_view 2513f910b91SDimitry AndricEXP_HEADERS+= system_error 2523f910b91SDimitry AndricEXP_HEADERS+= tuple 2533f910b91SDimitry AndricEXP_HEADERS+= type_traits 2543f910b91SDimitry AndricEXP_HEADERS+= unordered_map 2553f910b91SDimitry AndricEXP_HEADERS+= unordered_set 2563f910b91SDimitry AndricEXP_HEADERS+= utility 2573f910b91SDimitry AndricEXP_HEADERS+= vector 2584f7ab58eSDimitry Andric 2594f7ab58eSDimitry Andric.for hdr in ${EXP_HEADERS} 2604f7ab58eSDimitry AndricEXP+= ${HDRDIR}/experimental/${hdr} 2614f7ab58eSDimitry Andric.endfor 2624f7ab58eSDimitry AndricEXPDIR= ${CXXINCLUDEDIR}/experimental 2634f7ab58eSDimitry Andric 2643f910b91SDimitry AndricEXT_HEADERS+= __hash 2653f910b91SDimitry AndricEXT_HEADERS+= hash_map 2663f910b91SDimitry AndricEXT_HEADERS+= hash_set 2677a984708SDavid Chisnall 2687a984708SDavid Chisnall.for hdr in ${EXT_HEADERS} 2697a984708SDavid ChisnallEXT+= ${HDRDIR}/ext/${hdr} 2707a984708SDavid Chisnall.endfor 2717a984708SDavid ChisnallEXTDIR= ${CXXINCLUDEDIR}/ext 2727a984708SDavid Chisnall 2737a984708SDavid Chisnall.include <bsd.lib.mk> 274