]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libc++/Makefile
Document 300880, Leading spaces are stripped from SCSI disk serial numbers
[FreeBSD/FreeBSD.git] / lib / libc++ / Makefile
1 # $FreeBSD$
2
3 .include <src.opts.mk>
4
5 PACKAGE=        clibs
6 _LIBCXXRTDIR=   ${.CURDIR}/../../contrib/libcxxrt
7 HDRDIR=         ${.CURDIR}/../../contrib/libc++/include
8 SRCDIR=         ${.CURDIR}/../../contrib/libc++/src
9 CXXINCLUDEDIR=  ${INCLUDEDIR}/c++/v${SHLIB_MAJOR}
10 .if ${MACHINE_CPUARCH} == "arm"
11 STATIC_CXXFLAGS+= -mlong-calls
12 .endif
13
14 .PATH: ${SRCDIR}
15
16 LIB=            c++
17 SHLIB_MAJOR=    1
18 SHLIB_LDSCRIPT= libc++.ldscript
19
20 SRCS+=          algorithm.cpp\
21                 any.cpp\
22                 bind.cpp\
23                 chrono.cpp\
24                 condition_variable.cpp\
25                 debug.cpp\
26                 exception.cpp\
27                 future.cpp\
28                 hash.cpp\
29                 ios.cpp\
30                 iostream.cpp\
31                 locale.cpp\
32                 memory.cpp\
33                 mutex.cpp\
34                 new.cpp\
35                 optional.cpp\
36                 random.cpp\
37                 regex.cpp\
38                 shared_mutex.cpp\
39                 stdexcept.cpp\
40                 string.cpp\
41                 strstream.cpp\
42                 system_error.cpp\
43                 thread.cpp\
44                 typeinfo.cpp\
45                 utility.cpp\
46                 valarray.cpp
47
48 CXXRT_SRCS+=    libelftc_dem_gnu3.c\
49                 terminate.cc\
50                 dynamic_cast.cc\
51                 memory.cc\
52                 auxhelper.cc\
53                 exception.cc\
54                 stdexcept.cc\
55                 typeinfo.cc\
56                 guard.cc
57
58 .for _S in ${CXXRT_SRCS}
59 CLEANFILES+=    cxxrt_${_S}
60 STATICOBJS+=    cxxrt_${_S:R}.o
61 cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
62         ln -sf ${.ALLSRC} ${.TARGET}
63 .endfor
64
65 WARNS=          0
66 CFLAGS+=        -isystem ${HDRDIR} -isystem ${_LIBCXXRTDIR} -nostdinc++ -nostdlib -DLIBCXXRT
67 .if empty(CXXFLAGS:M-std=*)
68 CXXFLAGS+=      -std=c++11
69 .endif
70
71 LIBADD+=        cxxrt
72 INCSGROUPS=     STD EXP EXT
73
74 STD_HEADERS=    __bit_reference\
75                 __config\
76                 __debug\
77                 __functional_03\
78                 __functional_base\
79                 __functional_base_03\
80                 __hash_table\
81                 __locale\
82                 __mutex_base\
83                 __nullptr\
84                 __refstring\
85                 __split_buffer\
86                 __sso_allocator\
87                 __std_stream\
88                 __tree\
89                 __tuple\
90                 __undef___deallocate\
91                 __undef_min_max\
92                 algorithm\
93                 array\
94                 atomic\
95                 bitset\
96                 cassert\
97                 ccomplex\
98                 cctype\
99                 cerrno\
100                 cfenv\
101                 cfloat\
102                 chrono\
103                 cinttypes\
104                 ciso646\
105                 climits\
106                 clocale\
107                 cmath\
108                 codecvt\
109                 complex\
110                 complex.h\
111                 condition_variable\
112                 csetjmp\
113                 csignal\
114                 cstdarg\
115                 cstdbool\
116                 cstddef\
117                 cstdint\
118                 cstdio\
119                 cstdlib\
120                 cstring\
121                 ctgmath\
122                 ctime\
123                 ctype.h\
124                 cwchar\
125                 cwctype\
126                 deque\
127                 errno.h\
128                 exception\
129                 float.h\
130                 forward_list\
131                 fstream\
132                 functional\
133                 future\
134                 initializer_list\
135                 inttypes.h\
136                 iomanip\
137                 ios\
138                 iosfwd\
139                 iostream\
140                 istream\
141                 iterator\
142                 limits\
143                 list\
144                 locale\
145                 map\
146                 math.h\
147                 memory\
148                 mutex\
149                 new\
150                 numeric\
151                 ostream\
152                 queue\
153                 random\
154                 ratio\
155                 regex\
156                 scoped_allocator\
157                 set\
158                 setjmp.h\
159                 shared_mutex\
160                 sstream\
161                 stack\
162                 stddef.h\
163                 stdexcept\
164                 stdio.h\
165                 stdlib.h\
166                 streambuf\
167                 string\
168                 strstream\
169                 system_error\
170                 tgmath.h\
171                 thread\
172                 tuple\
173                 type_traits\
174                 typeindex\
175                 typeinfo\
176                 unordered_map\
177                 unordered_set\
178                 utility\
179                 valarray\
180                 vector\
181                 wchar.h\
182                 wctype.h
183 RT_HEADERS=     cxxabi.h\
184                 unwind.h\
185                 unwind-arm.h\
186                 unwind-itanium.h
187
188 .for hdr in ${STD_HEADERS}
189 STD+=           ${HDRDIR}/${hdr}
190 INCSLINKS+=     ../${hdr} ${CXXINCLUDEDIR}/tr1/${hdr}
191 .endfor
192 .for hdr in ${RT_HEADERS}
193 STD+=           ${_LIBCXXRTDIR}/${hdr}
194 .endfor
195 STDDIR=         ${CXXINCLUDEDIR}
196
197 EXP_HEADERS=    __config\
198                 algorithm\
199                 any\
200                 chrono\
201                 dynarray\
202                 functional\
203                 optional\
204                 ratio\
205                 string_view\
206                 system_error\
207                 tuple\
208                 type_traits\
209                 utility
210
211 .for hdr in ${EXP_HEADERS}
212 EXP+=           ${HDRDIR}/experimental/${hdr}
213 .endfor
214 EXPDIR=         ${CXXINCLUDEDIR}/experimental
215
216 EXT_HEADERS=    __hash\
217                 hash_map\
218                 hash_set
219
220 .for hdr in ${EXT_HEADERS}
221 EXT+=           ${HDRDIR}/ext/${hdr}
222 .endfor
223 EXTDIR=         ${CXXINCLUDEDIR}/ext
224
225 .if ${MK_GNUCXX} == "no" && ${COMPILER_TYPE} == "gcc"
226 CLEANFILES+=    libstdc++.so libstdc++.a
227
228 afterinstall:
229         ${INSTALL_SYMLINK} ${DESTDIR}${LIBDIR}/lib${LIB}.so \
230                 ${.OBJDIR}/libstdc++.so
231         ${INSTALL_SYMLINK} ${DESTDIR}${LIBDIR}/lib${LIB}.a \
232                 ${.OBJDIR}/libstdc++.a
233 .endif
234
235 .include <bsd.lib.mk>