rename amd64 architecture to x86_64
[dragonfly.git] / gnu / lib / gcc44 / libstdc++ / Makefile
1 .include "../Makefile.inc"
2
3 .if ${MACHINE_ARCH} == "i386" && !empty(MACHINE_CPU:Mi486)
4 MARCHDIR=       i486
5 .elif ${MACHINE_ARCH} == "x86_64"
6 MARCHDIR=       i486
7 .else
8 MARCHDIR=       ${MACHINE_ARCH}
9 .endif
10
11 SRCDIR= ${GCCDIR}/libstdc++-v3
12
13 glibcxx_srcdir= ${SRCDIR}
14
15 .PATH:  ${SRCDIR}/src ${SRCDIR}/libmath ${SRCDIR}/config/io
16 .PATH:  ${SRCDIR}/config/locale/generic ${SRCDIR}
17 .PATH:  ${GCCDIR}/gcc ${GCCDIR}/libiberty
18
19 #SUBDIR=        doc
20
21 LIB=            stdc++
22 SHLIB_MAJOR=    9
23
24 CFLAGS+=        -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
25 CFLAGS+=        -I${GCCDIR}/gcc -I${GCCDIR}/include
26 CXXFLAGS+=      -fno-implicit-templates -ffunction-sections -fdata-sections \
27                 -Wno-deprecated
28
29 FLAGS_GROUPS=   c++0x
30 c++0x_FLAGS=    -std=gnu++0x
31 c++0x_FLAGS_FILES= \
32         functexcept.cc system_error.cc mutex.cc condition_variable.cc \
33         hash_c++0x.cc hashtable_c++0x.cc limits_c++0x.cc atomic.cc \
34         string-inst.cc wstring-inst.cc chrono.cc thread.cc
35
36 LDADD+=         -lm
37 DPADD+=         ${LIBM}
38
39 .include "../libsupc++/Makefile.src"
40
41 # libstdc++ sources (libstdc++/src/Makefile.in, do not reorder)
42 SRCS+=  \
43         atomic.cc \
44         bitmap_allocator.cc \
45         pool_allocator.cc \
46         mt_allocator.cc \
47         codecvt.cc \
48         compatibility.cc \
49         complex_io.cc \
50         ctype.cc \
51         debug.cc \
52         functexcept.cc \
53         hash.cc \
54         hash_c++0x.cc \
55         globals_io.cc \
56         hashtable.cc \
57         hashtable_c++0x.cc \
58         ios.cc \
59         ios_failure.cc \
60         ios_init.cc \
61         ios_locale.cc \
62         limits.cc \
63         limits_c++0x.cc \
64         list.cc \
65         debug_list.cc \
66         locale.cc \
67         locale_init.cc \
68         locale_facets.cc \
69         localename.cc \
70         math_stubs_float.cc \
71         math_stubs_long_double.cc \
72         stdexcept.cc \
73         strstream.cc \
74         system_error.cc \
75         tree.cc \
76         allocator-inst.cc \
77         concept-inst.cc \
78         fstream-inst.cc \
79         ext-inst.cc \
80         ios-inst.cc \
81         iostream-inst.cc \
82         istream-inst.cc \
83         istream.cc \
84         locale-inst.cc \
85         misc-inst.cc \
86         ostream-inst.cc \
87         sstream-inst.cc \
88         streambuf-inst.cc \
89         streambuf.cc \
90         string-inst.cc \
91         valarray-inst.cc \
92         wlocale-inst.cc \
93         wstring-inst.cc \
94         mutex.cc \
95         condition_variable.cc \
96         chrono.cc \
97         thread.cc \
98         ${host_sources} \
99         ${host_sources_extra}
100
101 host_sources = \
102         atomicity.cc \
103         codecvt_members.cc \
104         collate_members.cc \
105         ctype_members.cc \
106         messages_members.cc \
107         monetary_members.cc \
108         numeric_members.cc \
109         time_members.cc 
110
111 # Here we change the file to stdio and c++locale to c_locale
112 host_sources_extra = \
113         basic_file_stdio.cc c_locale.cc
114
115 atomicity.cc:
116         echo '#include <ext/atomicity.h>' > ${.TARGET}
117
118 CLEANFILES+=    atomicity.cc
119
120 SRCS+=  gstdint.h bits/compatibility.h
121
122 gstdint.h:
123         echo "#include <stdint.h>" > ${.TARGET}
124
125 bits/compatibility.h: config/abi/compatibility.h
126         mkdir -p ${.TARGET:H}
127         cp ${.ALLSRC} ${.TARGET}
128
129 CLEANFILES+=    gstdint.h bits/compatibility.h
130 CLEANDIRS+=     bits
131
132
133 strstream.cc:   ${SRCDIR}/src/strstream.cc
134         sed -e 's,^#include <strstream>,#include <backward/strstream>,g' \
135             < ${.ALLSRC} > ${.TARGET}
136
137 CLEANFILES+=    strstream.cc
138
139
140 HD=     ${INCLUDEDIR}/c++/${GCCPOINTVER}
141 .for i in std bits backward ext tr1 tr1_impl c_base c_compatibility debug \
142         c_base_headers_extra
143
144 INCSGROUPS+=    $i_headers
145 $i_headersDIR=  ${HD}/${$i_builddir}
146 .endfor
147
148 INCSGROUPS+=    TARGETHDRS THRHDRS
149
150 std_srcdir = ${glibcxx_srcdir}/include/std
151 std_builddir = .
152 std_headers = \
153         ${std_srcdir}/algorithm \
154         ${std_srcdir}/array \
155         ${std_srcdir}/bitset \
156         ${std_srcdir}/c++0x_warning.h \
157         ${std_srcdir}/chrono \
158         ${std_srcdir}/complex \
159         ${std_srcdir}/condition_variable \
160         ${std_srcdir}/deque \
161         ${std_srcdir}/forward_list \
162         ${std_srcdir}/fstream \
163         ${std_srcdir}/functional \
164         ${std_srcdir}/iomanip \
165         ${std_srcdir}/ios \
166         ${std_srcdir}/iosfwd \
167         ${std_srcdir}/iostream \
168         ${std_srcdir}/istream \
169         ${std_srcdir}/iterator \
170         ${std_srcdir}/limits \
171         ${std_srcdir}/list \
172         ${std_srcdir}/locale \
173         ${std_srcdir}/map \
174         ${std_srcdir}/memory \
175         ${std_srcdir}/mutex \
176         ${std_srcdir}/numeric \
177         ${std_srcdir}/ostream \
178         ${std_srcdir}/queue \
179         ${std_srcdir}/random \
180         ${std_srcdir}/ratio \
181         ${std_srcdir}/regex \
182         ${std_srcdir}/set \
183         ${std_srcdir}/sstream \
184         ${std_srcdir}/stack \
185         ${std_srcdir}/stdexcept \
186         ${std_srcdir}/streambuf \
187         ${std_srcdir}/string \
188         ${std_srcdir}/system_error \
189         ${std_srcdir}/thread \
190         ${std_srcdir}/tuple \
191         ${std_srcdir}/type_traits \
192         ${std_srcdir}/unordered_map \
193         ${std_srcdir}/unordered_set \
194         ${std_srcdir}/utility \
195         ${std_srcdir}/valarray \
196         ${std_srcdir}/vector
197
198
199 bits_srcdir = ${glibcxx_srcdir}/include/bits
200 bits_builddir = ./bits
201 bits_headers = \
202         ${bits_srcdir}/algorithmfwd.h \
203         ${bits_srcdir}/allocator.h \
204         ${bits_srcdir}/atomicfwd_c.h \
205         ${bits_srcdir}/atomicfwd_cxx.h \
206         ${bits_srcdir}/atomic_0.h \
207         ${bits_srcdir}/atomic_2.h \
208         ${bits_srcdir}/basic_ios.h \
209         ${bits_srcdir}/basic_ios.tcc \
210         ${bits_srcdir}/basic_string.h \
211         ${bits_srcdir}/basic_string.tcc \
212         ${bits_srcdir}/boost_concept_check.h \
213         ${bits_srcdir}/char_traits.h \
214         ${bits_srcdir}/codecvt.h \
215         ${bits_srcdir}/concept_check.h \
216         ${bits_srcdir}/cpp_type_traits.h \
217         ${bits_srcdir}/deque.tcc \
218         ${bits_srcdir}/forward_list.h \
219         ${bits_srcdir}/forward_list.tcc \
220         ${bits_srcdir}/fstream.tcc \
221         ${bits_srcdir}/functexcept.h \
222         ${bits_srcdir}/functional_hash.h \
223         ${bits_srcdir}/gslice.h \
224         ${bits_srcdir}/gslice_array.h \
225         ${bits_srcdir}/hashtable.h \
226         ${bits_srcdir}/indirect_array.h \
227         ${bits_srcdir}/ios_base.h \
228         ${bits_srcdir}/istream.tcc \
229         ${bits_srcdir}/list.tcc \
230         ${bits_srcdir}/locale_classes.h \
231         ${bits_srcdir}/locale_classes.tcc \
232         ${bits_srcdir}/locale_facets.h \
233         ${bits_srcdir}/locale_facets.tcc \
234         ${bits_srcdir}/locale_facets_nonio.h \
235         ${bits_srcdir}/locale_facets_nonio.tcc \
236         ${bits_srcdir}/localefwd.h \
237         ${bits_srcdir}/mask_array.h \
238         ${bits_srcdir}/move.h \
239         ${bits_srcdir}/ostream.tcc \
240         ${bits_srcdir}/ostream_insert.h \
241         ${bits_srcdir}/postypes.h \
242         ${bits_srcdir}/stream_iterator.h \
243         ${bits_srcdir}/streambuf_iterator.h \
244         ${bits_srcdir}/shared_ptr.h \
245         ${bits_srcdir}/slice_array.h \
246         ${bits_srcdir}/sstream.tcc \
247         ${bits_srcdir}/stl_algo.h \
248         ${bits_srcdir}/stl_algobase.h \
249         ${bits_srcdir}/stl_bvector.h \
250         ${bits_srcdir}/stl_construct.h \
251         ${bits_srcdir}/stl_deque.h \
252         ${bits_srcdir}/stl_function.h \
253         ${bits_srcdir}/stl_heap.h \
254         ${bits_srcdir}/stl_iterator.h \
255         ${bits_srcdir}/stl_iterator_base_funcs.h \
256         ${bits_srcdir}/stl_iterator_base_types.h \
257         ${bits_srcdir}/stl_list.h \
258         ${bits_srcdir}/stl_map.h \
259         ${bits_srcdir}/stl_multimap.h \
260         ${bits_srcdir}/stl_multiset.h \
261         ${bits_srcdir}/stl_numeric.h \
262         ${bits_srcdir}/stl_pair.h \
263         ${bits_srcdir}/stl_queue.h \
264         ${bits_srcdir}/stl_raw_storage_iter.h \
265         ${bits_srcdir}/stl_relops.h \
266         ${bits_srcdir}/stl_set.h \
267         ${bits_srcdir}/stl_stack.h \
268         ${bits_srcdir}/stl_tempbuf.h \
269         ${bits_srcdir}/stl_tree.h \
270         ${bits_srcdir}/stl_uninitialized.h \
271         ${bits_srcdir}/stl_vector.h \
272         ${bits_srcdir}/streambuf.tcc \
273         ${bits_srcdir}/stringfwd.h \
274         ${bits_srcdir}/unique_ptr.h \
275         ${bits_srcdir}/valarray_array.h \
276         ${bits_srcdir}/valarray_array.tcc \
277         ${bits_srcdir}/valarray_before.h \
278         ${bits_srcdir}/valarray_after.h \
279         ${bits_srcdir}/vector.tcc
280
281
282 backward_srcdir = ${glibcxx_srcdir}/include/backward
283 backward_builddir = ./backward
284 backward_headers = \
285         ${backward_srcdir}/auto_ptr.h \
286         ${backward_srcdir}/backward_warning.h \
287         ${backward_srcdir}/binders.h \
288         ${backward_srcdir}/hash_map \
289         ${backward_srcdir}/hash_set \
290         ${backward_srcdir}/hash_fun.h \
291         ${backward_srcdir}/hashtable.h \
292         ${backward_srcdir}/strstream
293
294
295 ext_srcdir = ${glibcxx_srcdir}/include/ext
296 ext_builddir = ./ext
297 ext_headers = \
298         ${ext_srcdir}/algorithm \
299         ${ext_srcdir}/atomicity.h \
300         ${ext_srcdir}/array_allocator.h \
301         ${ext_srcdir}/bitmap_allocator.h \
302         ${ext_srcdir}/cast.h \
303         ${ext_srcdir}/codecvt_specializations.h \
304         ${ext_srcdir}/concurrence.h \
305         ${ext_srcdir}/debug_allocator.h \
306         ${ext_srcdir}/enc_filebuf.h \
307         ${ext_srcdir}/extptr_allocator.h \
308         ${ext_srcdir}/stdio_filebuf.h \
309         ${ext_srcdir}/stdio_sync_filebuf.h \
310         ${ext_srcdir}/functional \
311         ${ext_srcdir}/iterator \
312         ${ext_srcdir}/malloc_allocator.h \
313         ${ext_srcdir}/memory \
314         ${ext_srcdir}/mt_allocator.h \
315         ${ext_srcdir}/new_allocator.h \
316         ${ext_srcdir}/numeric \
317         ${ext_srcdir}/numeric_traits.h \
318         ${ext_srcdir}/pod_char_traits.h \
319         ${ext_srcdir}/pointer.h \
320         ${ext_srcdir}/pool_allocator.h \
321         ${ext_srcdir}/rb_tree \
322         ${ext_srcdir}/rope \
323         ${ext_srcdir}/ropeimpl.h \
324         ${ext_srcdir}/slist \
325         ${ext_srcdir}/string_conversions.h \
326         ${ext_srcdir}/throw_allocator.h \
327         ${ext_srcdir}/typelist.h \
328         ${ext_srcdir}/type_traits.h \
329         ${ext_srcdir}/rc_string_base.h \
330         ${ext_srcdir}/sso_string_base.h \
331         ${ext_srcdir}/vstring.h \
332         ${ext_srcdir}/vstring.tcc \
333         ${ext_srcdir}/vstring_fwd.h \
334         ${ext_srcdir}/vstring_util.h \
335         ${ext_compat_headers}
336 ext_compat_headers = \
337         ${backward_srcdir}/hash_set \
338         ${backward_srcdir}/hash_map
339
340
341 tr1_srcdir = ${glibcxx_srcdir}/include/tr1
342 tr1_builddir = ./tr1
343 tr1_headers = \
344         ${tr1_srcdir}/array \
345         ${tr1_srcdir}/bessel_function.tcc \
346         ${tr1_srcdir}/beta_function.tcc \
347         ${tr1_srcdir}/ccomplex \
348         ${tr1_srcdir}/cctype \
349         ${tr1_srcdir}/cfenv \
350         ${tr1_srcdir}/cfloat \
351         ${tr1_srcdir}/cinttypes \
352         ${tr1_srcdir}/climits \
353         ${tr1_srcdir}/cmath \
354         ${tr1_srcdir}/complex \
355         ${tr1_srcdir}/complex.h \
356         ${tr1_srcdir}/cstdarg \
357         ${tr1_srcdir}/cstdbool \
358         ${tr1_srcdir}/cstdint \
359         ${tr1_srcdir}/cstdio \
360         ${tr1_srcdir}/cstdlib \
361         ${tr1_srcdir}/ctgmath \
362         ${tr1_srcdir}/ctime \
363         ${tr1_srcdir}/ctype.h \
364         ${tr1_srcdir}/cwchar \
365         ${tr1_srcdir}/cwctype \
366         ${tr1_srcdir}/ell_integral.tcc \
367         ${tr1_srcdir}/exp_integral.tcc \
368         ${tr1_srcdir}/fenv.h \
369         ${tr1_srcdir}/float.h \
370         ${tr1_srcdir}/functional \
371         ${tr1_srcdir}/functional_hash.h \
372         ${tr1_srcdir}/gamma.tcc \
373         ${tr1_srcdir}/hypergeometric.tcc \
374         ${tr1_srcdir}/hashtable.h \
375         ${tr1_srcdir}/inttypes.h \
376         ${tr1_srcdir}/limits.h \
377         ${tr1_srcdir}/math.h \
378         ${tr1_srcdir}/memory \
379         ${tr1_srcdir}/modified_bessel_func.tcc \
380         ${tr1_srcdir}/poly_hermite.tcc \
381         ${tr1_srcdir}/poly_laguerre.tcc \
382         ${tr1_srcdir}/legendre_function.tcc \
383         ${tr1_srcdir}/random \
384         ${tr1_srcdir}/regex \
385         ${tr1_srcdir}/riemann_zeta.tcc \
386         ${tr1_srcdir}/shared_ptr.h \
387         ${tr1_srcdir}/special_function_util.h \
388         ${tr1_srcdir}/stdarg.h \
389         ${tr1_srcdir}/stdbool.h \
390         ${tr1_srcdir}/stdint.h \
391         ${tr1_srcdir}/stdio.h \
392         ${tr1_srcdir}/stdlib.h \
393         ${tr1_srcdir}/tgmath.h \
394         ${tr1_srcdir}/tuple \
395         ${tr1_srcdir}/type_traits \
396         ${tr1_srcdir}/unordered_set \
397         ${tr1_srcdir}/unordered_map \
398         ${tr1_srcdir}/utility \
399         ${tr1_srcdir}/wchar.h \
400         ${tr1_srcdir}/wctype.h
401
402
403 tr1_impl_srcdir = ${glibcxx_srcdir}/include/tr1_impl
404 tr1_impl_builddir = ./tr1_impl
405 tr1_impl_headers = \
406         ${tr1_impl_srcdir}/array \
407         ${tr1_impl_srcdir}/boost_sp_counted_base.h \
408         ${tr1_impl_srcdir}/cctype \
409         ${tr1_impl_srcdir}/cfenv \
410         ${tr1_impl_srcdir}/cinttypes \
411         ${tr1_impl_srcdir}/cmath \
412         ${tr1_impl_srcdir}/complex \
413         ${tr1_impl_srcdir}/cstdint \
414         ${tr1_impl_srcdir}/cstdio \
415         ${tr1_impl_srcdir}/cstdlib \
416         ${tr1_impl_srcdir}/cwchar \
417         ${tr1_impl_srcdir}/cwctype \
418         ${tr1_impl_srcdir}/functional \
419         ${tr1_impl_srcdir}/functional_hash.h \
420         ${tr1_impl_srcdir}/hashtable \
421         ${tr1_impl_srcdir}/hashtable_policy.h \
422         ${tr1_impl_srcdir}/random \
423         ${tr1_impl_srcdir}/random.tcc \
424         ${tr1_impl_srcdir}/regex \
425         ${tr1_impl_srcdir}/type_traits \
426         ${tr1_impl_srcdir}/unordered_map \
427         ${tr1_impl_srcdir}/unordered_set \
428         ${tr1_impl_srcdir}/utility
429
430 C_INCLUDE_DIR = ${glibcxx_srcdir}/include/c_global
431 c_base_srcdir = $(C_INCLUDE_DIR)
432 c_base_builddir = .
433 c_base_headers = \
434         ${c_base_srcdir}/cassert \
435         ${c_base_srcdir}/ccomplex \
436         ${c_base_srcdir}/cctype \
437         ${c_base_srcdir}/cerrno \
438         ${c_base_srcdir}/cfenv \
439         ${c_base_srcdir}/cfloat \
440         ${c_base_srcdir}/cinttypes \
441         ${c_base_srcdir}/ciso646 \
442         ${c_base_srcdir}/climits \
443         ${c_base_srcdir}/clocale \
444         ${c_base_srcdir}/cmath \
445         ${c_base_srcdir}/csetjmp \
446         ${c_base_srcdir}/csignal \
447         ${c_base_srcdir}/cstdarg \
448         ${c_base_srcdir}/cstdatomic \
449         ${c_base_srcdir}/cstdbool \
450         ${c_base_srcdir}/cstddef \
451         ${c_base_srcdir}/cstdint \
452         ${c_base_srcdir}/cstdio \
453         ${c_base_srcdir}/cstdlib \
454         ${c_base_srcdir}/cstring \
455         ${c_base_srcdir}/ctgmath \
456         ${c_base_srcdir}/ctime \
457         ${c_base_srcdir}/cwchar \
458         ${c_base_srcdir}/cwctype
459
460 c_compatibility_srcdir = ${glibcxx_srcdir}/include/c_compatibility
461 c_compatibility_builddir = .
462 c_compatibility_headers = \
463         ${c_compatibility_srcdir}/complex.h \
464         ${c_compatibility_srcdir}/fenv.h \
465         ${c_compatibility_srcdir}/tgmath.h \
466         ${c_compatibility_srcdir}/stdatomic.h
467
468
469 debug_srcdir = ${glibcxx_srcdir}/include/debug
470 debug_builddir = ./debug
471 debug_headers = \
472         ${debug_srcdir}/bitset \
473         ${debug_srcdir}/debug.h \
474         ${debug_srcdir}/deque \
475         ${debug_srcdir}/formatter.h \
476         ${debug_srcdir}/functions.h \
477         ${debug_srcdir}/list \
478         ${debug_srcdir}/map \
479         ${debug_srcdir}/macros.h \
480         ${debug_srcdir}/map.h \
481         ${debug_srcdir}/multimap.h \
482         ${debug_srcdir}/multiset.h \
483         ${debug_srcdir}/safe_base.h \
484         ${debug_srcdir}/safe_iterator.h \
485         ${debug_srcdir}/safe_iterator.tcc \
486         ${debug_srcdir}/safe_sequence.h \
487         ${debug_srcdir}/set \
488         ${debug_srcdir}/set.h \
489         ${debug_srcdir}/string \
490         ${debug_srcdir}/unordered_map \
491         ${debug_srcdir}/unordered_set \
492         ${debug_srcdir}/vector
493
494
495 c_base_headers_extra_builddir = bits
496 c_base_headers_extra_headers = ${c_base_srcdir}/cmath.tcc
497
498
499 host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR)
500 host_builddir = ./${host_alias}/bits
501 host_installdir = ${gxx_include_dir}/${host_alias}$(MULTISUBDIR)/bits
502 host_headers = \
503         ${host_srcdir}/ctype_base.h \
504         ${host_srcdir}/ctype_inline.h \
505         ${host_srcdir}/ctype_noninline.h \
506         ${host_srcdir}/os_defines.h \
507         ${glibcxx_srcdir}/$(ATOMIC_WORD_SRCDIR)/atomic_word.h \
508         ${glibcxx_srcdir}/$(ABI_TWEAKS_SRCDIR)/cxxabi_tweaks.h \
509         ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h \
510         ${glibcxx_srcdir}/$(ERROR_CONSTANTS_SRCDIR)/error_constants.h \
511         ${glibcxx_srcdir}/include/precompiled/stdc++.h \
512         ${glibcxx_srcdir}/include/precompiled/stdtr1c++.h \
513         ${glibcxx_srcdir}/include/precompiled/extc++.h
514
515 # c++locale <- c_locale.h
516 TARGETHDRS=     io/basic_file_stdio.h
517 TARGETHDRSNAME_basic_file_stdio.h=      basic_file.h
518 TARGETHDRS+=    allocator/new_allocator_base.h
519 TARGETHDRSNAME_new_allocator_base.h=    c++allocator.h
520 TARGETHDRS+=    io/c_io_stdio.h
521 TARGETHDRSNAME_c_io_stdio.h=            c++io.h
522 TARGETHDRS+=    locale/generic/c_locale.h locale/generic/c++locale_internal.h
523 TARGETHDRSNAME_c_locale.h=              c++locale.h
524 TARGETHDRS+=    locale/generic/messages_members.h
525 TARGETHDRS+=    locale/generic/time_members.h
526
527 TARGETHDRS+=    os/generic/error_constants.h
528 TARGETHDRS+=    os/bsd/dragonfly/ctype_inline.h
529 TARGETHDRS+=    os/bsd/dragonfly/ctype_base.h
530 TARGETHDRS+=    os/bsd/dragonfly/ctype_noninline.h
531 TARGETHDRS+=    os/bsd/dragonfly/os_defines.h
532 TARGETHDRS:=    ${TARGETHDRS:S;^;${SRCDIR}/config/;}
533 TARGETHDRS+=    c++config.h
534 TARGETHDRSDIR=  ${HD}/bits
535
536 MARCHHDRS=      atomic_word.h cxxabi_tweaks.h cpu_defines.h
537
538 .for h in ${MARCHHDRS}
539 .if exists(${SRCDIR}/config/cpu/${MARCHDIR}/${h})
540 TARGETHDRS+=    ${SRCDIR}/config/cpu/${MARCHDIR}/${h}
541 .else
542 TARGETHDRS+=    ${SRCDIR}/config/cpu/generic/${h}
543 .endif
544 .endfor
545
546 THRHDRS=        gthr.h gthr-single.h gthr-posix.h gthr-default.h
547 THRHDRSDIR=     ${HD}/bits
548
549 gthr.h: ${GCCDIR}/gcc/gthr.h
550         sed -e '/^#pragma/b' \
551             -e '/^#/s/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*\)/_GLIBCXX_\1/g' \
552             -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
553             -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
554             < ${GCCDIR}/gcc/gthr.h > gthr.h
555
556 gthr-single.h: ${GCCDIR}/gcc/gthr-single.h
557         sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
558             -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCXX_\1/g' \
559             < ${GCCDIR}/gcc/gthr-single.h > gthr-single.h
560
561 gthr-posix.h: ${GCCDIR}/gcc/gthr-posix.h
562         sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
563             -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCXX_\1/g' \
564             -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
565             -e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*USE_WEAK\)/_GLIBCXX_\1/g' \
566             < ${GCCDIR}/gcc/gthr-posix.h > gthr-posix.h
567
568 gthr-default.h: ${GCCDIR}/gcc/gthr-posix.h
569         sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
570             -e 's/\(GCC[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*_H\)/_GLIBCXX_\1/g' \
571             -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
572             -e 's/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*USE_WEAK\)/_GLIBCXX_\1/g' \
573             -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
574             < ${GCCDIR}/gcc/gthr-posix.h > gthr-default.h
575
576 c++config.h: config.h ${SRCDIR}/include/bits/c++config DATESTAMP
577         date=`cat ${.ALLSRC:M*DATESTAMP}` ; \
578         nsa_version=0 ;\
579         visibility=1 ;\
580         sed -e "s,define __GLIBCXX__, define __GLIBCXX__ $$date," \
581         -e "s,define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION, define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION $$nsa_version," \
582         -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \
583         < ${.ALLSRC:M*c++config} > ${.TARGET}
584         sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
585             -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
586             -e 's/VERSION/_GLIBCXX_VERSION/g' \
587             -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
588             -e 's/ICONV_CONST/_GLIBCXX_ICONV_CONST/g' \
589             -e '/[      ]_GLIBCXX_LONG_DOUBLE_COMPAT[   ]/d' \
590             < ${.ALLSRC:M*config.h} >> ${.TARGET}
591         echo "" >> ${.TARGET}
592         echo "#endif // _GLIBCXX_CXX_CONFIG_H" >> ${.TARGET}
593
594 CLEANFILES+=    ${THRHDRS} c++config.h
595
596 .include <bsd.lib.mk>