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