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