1# $FreeBSD$ 2 3.include <src.opts.mk> 4 5PACKAGE= clibs 6_LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt 7HDRDIR= ${SRCTOP}/contrib/libc++/include 8SRCDIR= ${SRCTOP}/contrib/libc++/src 9CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR} 10.if ${MACHINE_CPUARCH} == "arm" 11STATIC_CXXFLAGS+= -mlong-calls 12.endif 13 14.PATH: ${SRCDIR} 15 16LIB= c++ 17SHLIB_MAJOR= 1 18SHLIB_LDSCRIPT= libc++.ldscript 19 20SRCS+= algorithm.cpp 21SRCS+= any.cpp 22SRCS+= bind.cpp 23SRCS+= charconv.cpp 24SRCS+= chrono.cpp 25SRCS+= condition_variable.cpp 26SRCS+= debug.cpp 27SRCS+= exception.cpp 28SRCS+= functional.cpp 29SRCS+= future.cpp 30SRCS+= hash.cpp 31SRCS+= ios.cpp 32SRCS+= iostream.cpp 33SRCS+= locale.cpp 34SRCS+= memory.cpp 35SRCS+= mutex.cpp 36SRCS+= new.cpp 37SRCS+= optional.cpp 38SRCS+= random.cpp 39SRCS+= regex.cpp 40SRCS+= shared_mutex.cpp 41SRCS+= stdexcept.cpp 42SRCS+= string.cpp 43SRCS+= strstream.cpp 44SRCS+= system_error.cpp 45SRCS+= thread.cpp 46SRCS+= typeinfo.cpp 47SRCS+= utility.cpp 48SRCS+= valarray.cpp 49SRCS+= variant.cpp 50SRCS+= vector.cpp 51SRCS+= filesystem/directory_iterator.cpp 52SRCS+= filesystem/int128_builtins.cpp 53SRCS+= filesystem/operations.cpp 54 55CXXRT_SRCS+= auxhelper.cc 56CXXRT_SRCS+= dynamic_cast.cc 57CXXRT_SRCS+= exception.cc 58CXXRT_SRCS+= guard.cc 59CXXRT_SRCS+= libelftc_dem_gnu3.c 60CXXRT_SRCS+= memory.cc 61CXXRT_SRCS+= stdexcept.cc 62CXXRT_SRCS+= terminate.cc 63CXXRT_SRCS+= typeinfo.cc 64 65.for _S in ${CXXRT_SRCS} 66CLEANFILES+= cxxrt_${_S} 67STATICOBJS+= cxxrt_${_S:R}.o 68cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA 69 ln -sf ${.ALLSRC} ${.TARGET} 70.endfor 71 72WARNS= 0 73CFLAGS+= -isystem ${HDRDIR} 74CFLAGS+= -isystem ${_LIBCXXRTDIR} 75CFLAGS+= -nostdinc++ 76CFLAGS+= -nostdlib 77CFLAGS+= -D_LIBCPP_BUILDING_LIBRARY 78CFLAGS+= -DLIBCXXRT 79CXXSTD= c++11 80 81LIBADD+= cxxrt 82INCSGROUPS= STD EXP EXT 83 84STD_HEADERS+= __bit_reference 85STD_HEADERS+= __bsd_locale_defaults.h 86STD_HEADERS+= __bsd_locale_fallbacks.h 87STD_HEADERS+= __config 88STD_HEADERS+= __debug 89STD_HEADERS+= __errc 90STD_HEADERS+= __functional_03 91STD_HEADERS+= __functional_base 92STD_HEADERS+= __functional_base_03 93STD_HEADERS+= __hash_table 94STD_HEADERS+= __libcpp_version 95STD_HEADERS+= __locale 96STD_HEADERS+= __mutex_base 97STD_HEADERS+= __node_handle 98STD_HEADERS+= __nullptr 99STD_HEADERS+= __split_buffer 100STD_HEADERS+= __sso_allocator 101STD_HEADERS+= __std_stream 102STD_HEADERS+= __string 103STD_HEADERS+= __threading_support 104STD_HEADERS+= __tree 105STD_HEADERS+= __tuple 106STD_HEADERS+= __undef_macros 107STD_HEADERS+= algorithm 108STD_HEADERS+= any 109STD_HEADERS+= array 110STD_HEADERS+= atomic 111STD_HEADERS+= bit 112STD_HEADERS+= bitset 113STD_HEADERS+= cassert 114STD_HEADERS+= ccomplex 115STD_HEADERS+= cctype 116STD_HEADERS+= cerrno 117STD_HEADERS+= cfenv 118STD_HEADERS+= cfloat 119STD_HEADERS+= charconv 120STD_HEADERS+= chrono 121STD_HEADERS+= cinttypes 122STD_HEADERS+= ciso646 123STD_HEADERS+= climits 124STD_HEADERS+= clocale 125STD_HEADERS+= cmath 126STD_HEADERS+= codecvt 127STD_HEADERS+= compare 128STD_HEADERS+= complex 129STD_HEADERS+= complex.h 130STD_HEADERS+= condition_variable 131STD_HEADERS+= csetjmp 132STD_HEADERS+= csignal 133STD_HEADERS+= cstdarg 134STD_HEADERS+= cstdbool 135STD_HEADERS+= cstddef 136STD_HEADERS+= cstdint 137STD_HEADERS+= cstdio 138STD_HEADERS+= cstdlib 139STD_HEADERS+= cstring 140STD_HEADERS+= ctgmath 141STD_HEADERS+= ctime 142STD_HEADERS+= ctype.h 143STD_HEADERS+= cwchar 144STD_HEADERS+= cwctype 145STD_HEADERS+= deque 146STD_HEADERS+= errno.h 147STD_HEADERS+= exception 148STD_HEADERS+= filesystem 149STD_HEADERS+= float.h 150STD_HEADERS+= forward_list 151STD_HEADERS+= fstream 152STD_HEADERS+= functional 153STD_HEADERS+= future 154STD_HEADERS+= initializer_list 155STD_HEADERS+= inttypes.h 156STD_HEADERS+= iomanip 157STD_HEADERS+= ios 158STD_HEADERS+= iosfwd 159STD_HEADERS+= iostream 160STD_HEADERS+= istream 161STD_HEADERS+= iterator 162STD_HEADERS+= limits 163STD_HEADERS+= limits.h 164STD_HEADERS+= list 165STD_HEADERS+= locale 166STD_HEADERS+= locale.h 167STD_HEADERS+= map 168STD_HEADERS+= math.h 169STD_HEADERS+= memory 170STD_HEADERS+= mutex 171STD_HEADERS+= new 172STD_HEADERS+= numeric 173STD_HEADERS+= optional 174STD_HEADERS+= ostream 175STD_HEADERS+= queue 176STD_HEADERS+= random 177STD_HEADERS+= ratio 178STD_HEADERS+= regex 179STD_HEADERS+= scoped_allocator 180STD_HEADERS+= set 181STD_HEADERS+= setjmp.h 182STD_HEADERS+= shared_mutex 183STD_HEADERS+= span 184STD_HEADERS+= sstream 185STD_HEADERS+= stack 186STD_HEADERS+= stdbool.h 187STD_HEADERS+= stddef.h 188STD_HEADERS+= stdexcept 189STD_HEADERS+= stdint.h 190STD_HEADERS+= stdio.h 191STD_HEADERS+= stdlib.h 192STD_HEADERS+= streambuf 193STD_HEADERS+= string 194STD_HEADERS+= string.h 195STD_HEADERS+= string_view 196STD_HEADERS+= strstream 197STD_HEADERS+= system_error 198STD_HEADERS+= tgmath.h 199STD_HEADERS+= thread 200STD_HEADERS+= tuple 201STD_HEADERS+= type_traits 202STD_HEADERS+= typeindex 203STD_HEADERS+= typeinfo 204STD_HEADERS+= unordered_map 205STD_HEADERS+= unordered_set 206STD_HEADERS+= utility 207STD_HEADERS+= valarray 208STD_HEADERS+= variant 209STD_HEADERS+= vector 210STD_HEADERS+= version 211STD_HEADERS+= wchar.h 212STD_HEADERS+= wctype.h 213 214RT_HEADERS+= cxxabi.h 215RT_HEADERS+= unwind-arm.h 216RT_HEADERS+= unwind-itanium.h 217RT_HEADERS+= unwind.h 218 219.for hdr in ${STD_HEADERS} 220STD+= ${HDRDIR}/${hdr} 221INCSLINKS+= ../${hdr} ${CXXINCLUDEDIR}/tr1/${hdr} 222.endfor 223.for hdr in ${RT_HEADERS} 224STD+= ${_LIBCXXRTDIR}/${hdr} 225.endfor 226STDDIR= ${CXXINCLUDEDIR} 227 228EXP_HEADERS+= __config 229EXP_HEADERS+= __memory 230EXP_HEADERS+= algorithm 231EXP_HEADERS+= any 232EXP_HEADERS+= chrono 233EXP_HEADERS+= coroutine 234EXP_HEADERS+= deque 235EXP_HEADERS+= filesystem 236EXP_HEADERS+= forward_list 237EXP_HEADERS+= functional 238EXP_HEADERS+= iterator 239EXP_HEADERS+= list 240EXP_HEADERS+= map 241EXP_HEADERS+= memory_resource 242EXP_HEADERS+= numeric 243EXP_HEADERS+= optional 244EXP_HEADERS+= propagate_const 245EXP_HEADERS+= ratio 246EXP_HEADERS+= regex 247EXP_HEADERS+= set 248EXP_HEADERS+= simd 249EXP_HEADERS+= string 250EXP_HEADERS+= string_view 251EXP_HEADERS+= system_error 252EXP_HEADERS+= tuple 253EXP_HEADERS+= type_traits 254EXP_HEADERS+= unordered_map 255EXP_HEADERS+= unordered_set 256EXP_HEADERS+= utility 257EXP_HEADERS+= vector 258 259.for hdr in ${EXP_HEADERS} 260EXP+= ${HDRDIR}/experimental/${hdr} 261.endfor 262EXPDIR= ${CXXINCLUDEDIR}/experimental 263 264EXT_HEADERS+= __hash 265EXT_HEADERS+= hash_map 266EXT_HEADERS+= hash_set 267 268.for hdr in ${EXT_HEADERS} 269EXT+= ${HDRDIR}/ext/${hdr} 270.endfor 271EXTDIR= ${CXXINCLUDEDIR}/ext 272 273.include <bsd.lib.mk> 274