197403Sobrien## Makefile for the include subdirectory of the GNU C++ Standard library.
297403Sobrien##
3169691Skan## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
4169691Skan## Free Software Foundation, Inc.
597403Sobrien##
697403Sobrien## This file is part of the libstdc++ version 3 distribution.
797403Sobrien## Process this file with automake to produce Makefile.in.
897403Sobrien
997403Sobrien## This file is part of the GNU ISO C++ Library.  This library is free
1097403Sobrien## software; you can redistribute it and/or modify it under the
1197403Sobrien## terms of the GNU General Public License as published by the
1297403Sobrien## Free Software Foundation; either version 2, or (at your option)
1397403Sobrien## any later version.
1497403Sobrien
1597403Sobrien## This library is distributed in the hope that it will be useful,
1697403Sobrien## but WITHOUT ANY WARRANTY; without even the implied warranty of
1797403Sobrien## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1897403Sobrien## GNU General Public License for more details.
1997403Sobrien
2097403Sobrien## You should have received a copy of the GNU General Public License along
2197403Sobrien## with this library; see the file COPYING.  If not, write to the Free
22169691Skan## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
2397403Sobrien## USA.
2497403Sobrien
25132720Skaninclude $(top_srcdir)/fragment.am
2697403Sobrien
27117397Skan# Standard C++ includes.
28132720Skanstd_srcdir = ${glibcxx_srcdir}/include/std
29117397Skanstd_builddir = .
30117397Skanstd_headers = \
31117397Skan	${std_srcdir}/std_algorithm.h \
32117397Skan	${std_srcdir}/std_bitset.h \
33117397Skan	${std_srcdir}/std_complex.h \
34117397Skan	${std_srcdir}/std_deque.h \
35117397Skan	${std_srcdir}/std_fstream.h \
36117397Skan	${std_srcdir}/std_functional.h \
37117397Skan	${std_srcdir}/std_iomanip.h \
38117397Skan	${std_srcdir}/std_ios.h \
39117397Skan	${std_srcdir}/std_iosfwd.h \
40117397Skan	${std_srcdir}/std_iostream.h \
41117397Skan	${std_srcdir}/std_istream.h \
42117397Skan	${std_srcdir}/std_iterator.h \
43117397Skan	${std_srcdir}/std_limits.h \
44117397Skan	${std_srcdir}/std_list.h \
45117397Skan	${std_srcdir}/std_locale.h \
46117397Skan	${std_srcdir}/std_map.h \
47117397Skan	${std_srcdir}/std_memory.h \
48117397Skan	${std_srcdir}/std_numeric.h \
49117397Skan	${std_srcdir}/std_ostream.h \
50117397Skan	${std_srcdir}/std_queue.h \
51117397Skan	${std_srcdir}/std_set.h \
52117397Skan	${std_srcdir}/std_sstream.h \
53117397Skan	${std_srcdir}/std_stack.h \
54117397Skan	${std_srcdir}/std_stdexcept.h \
55117397Skan	${std_srcdir}/std_streambuf.h \
56117397Skan	${std_srcdir}/std_string.h \
57117397Skan	${std_srcdir}/std_utility.h \
58117397Skan	${std_srcdir}/std_valarray.h \
59117397Skan	${std_srcdir}/std_vector.h
60132720Skan# Renamed at build time.
61117397Skanstd_headers_rename = \
62117397Skan	algorithm \
63117397Skan	bitset \
64117397Skan	complex \
65117397Skan	deque \
66117397Skan	fstream \
67117397Skan	functional \
68117397Skan	iomanip \
69117397Skan	ios \
70117397Skan	iosfwd \
71117397Skan	iostream \
72117397Skan	istream \
73117397Skan	iterator \
74117397Skan	limits \
75117397Skan	list \
76117397Skan	locale \
77117397Skan	map \
78117397Skan	memory \
79117397Skan	numeric \
80117397Skan	ostream \
81117397Skan	queue \
82117397Skan	set \
83117397Skan	sstream \
84117397Skan	stack \
85117397Skan	stdexcept \
86117397Skan	streambuf \
87117397Skan	string \
88117397Skan	utility \
89117397Skan	valarray \
90117397Skan	vector
91117397Skan
92132720Skanbits_srcdir = ${glibcxx_srcdir}/include/bits
9397403Sobrienbits_builddir = ./bits
9497403Sobrienbits_headers = \
95132720Skan	${bits_srcdir}/allocator.h \
9697403Sobrien	${bits_srcdir}/basic_ios.h \
9797403Sobrien	${bits_srcdir}/basic_ios.tcc \
9897403Sobrien	${bits_srcdir}/basic_string.h \
9997403Sobrien	${bits_srcdir}/basic_string.tcc \
10097403Sobrien	${bits_srcdir}/boost_concept_check.h \
10197403Sobrien	${bits_srcdir}/char_traits.h \
10297403Sobrien	${bits_srcdir}/codecvt.h \
10397403Sobrien	${bits_srcdir}/concept_check.h \
10497403Sobrien	${bits_srcdir}/cpp_type_traits.h \
105117397Skan	${bits_srcdir}/deque.tcc \
10697403Sobrien	${bits_srcdir}/fstream.tcc \
10797403Sobrien	${bits_srcdir}/functexcept.h \
10897403Sobrien	${bits_srcdir}/gslice.h \
10997403Sobrien	${bits_srcdir}/gslice_array.h \
11097403Sobrien	${bits_srcdir}/indirect_array.h \
11197403Sobrien	${bits_srcdir}/ios_base.h \
11297403Sobrien	${bits_srcdir}/istream.tcc \
113117397Skan	${bits_srcdir}/list.tcc \
114117397Skan	${bits_srcdir}/locale_classes.h \
11597403Sobrien	${bits_srcdir}/locale_facets.h \
11697403Sobrien	${bits_srcdir}/locale_facets.tcc \
11797403Sobrien	${bits_srcdir}/localefwd.h \
11897403Sobrien	${bits_srcdir}/mask_array.h \
11997403Sobrien	${bits_srcdir}/ostream.tcc \
120169691Skan	${bits_srcdir}/ostream_insert.h \
121132720Skan	${bits_srcdir}/postypes.h \
12297403Sobrien	${bits_srcdir}/stream_iterator.h \
12397403Sobrien	${bits_srcdir}/streambuf_iterator.h \
12497403Sobrien	${bits_srcdir}/slice_array.h \
12597403Sobrien	${bits_srcdir}/sstream.tcc \
12697403Sobrien	${bits_srcdir}/stl_algo.h \
12797403Sobrien	${bits_srcdir}/stl_algobase.h \
12897403Sobrien	${bits_srcdir}/stl_bvector.h \
12997403Sobrien	${bits_srcdir}/stl_construct.h \
13097403Sobrien	${bits_srcdir}/stl_deque.h \
13197403Sobrien	${bits_srcdir}/stl_function.h \
13297403Sobrien	${bits_srcdir}/stl_heap.h \
13397403Sobrien	${bits_srcdir}/stl_iterator.h \
13497403Sobrien	${bits_srcdir}/stl_iterator_base_funcs.h \
13597403Sobrien	${bits_srcdir}/stl_iterator_base_types.h \
13697403Sobrien	${bits_srcdir}/stl_list.h \
13797403Sobrien	${bits_srcdir}/stl_map.h \
13897403Sobrien	${bits_srcdir}/stl_multimap.h \
13997403Sobrien	${bits_srcdir}/stl_multiset.h \
14097403Sobrien	${bits_srcdir}/stl_numeric.h \
14197403Sobrien	${bits_srcdir}/stl_pair.h \
14297403Sobrien	${bits_srcdir}/stl_queue.h \
14397403Sobrien	${bits_srcdir}/stl_raw_storage_iter.h \
14497403Sobrien	${bits_srcdir}/stl_relops.h \
14597403Sobrien	${bits_srcdir}/stl_set.h \
14697403Sobrien	${bits_srcdir}/stl_stack.h \
14797403Sobrien	${bits_srcdir}/stl_tempbuf.h \
14897403Sobrien	${bits_srcdir}/stl_tree.h \
14997403Sobrien	${bits_srcdir}/stl_uninitialized.h \
15097403Sobrien	${bits_srcdir}/stl_vector.h \
15197403Sobrien	${bits_srcdir}/streambuf.tcc \
15297403Sobrien	${bits_srcdir}/stringfwd.h \
15397403Sobrien	${bits_srcdir}/valarray_array.h \
15497403Sobrien	${bits_srcdir}/valarray_array.tcc \
155132720Skan	${bits_srcdir}/valarray_before.h \
156132720Skan	${bits_srcdir}/valarray_after.h \
157117397Skan	${bits_srcdir}/vector.tcc
15897403Sobrien
159132720Skanbackward_srcdir = ${glibcxx_srcdir}/include/backward
16097403Sobrienbackward_builddir = ./backward
16197403Sobrienbackward_headers = \
16297403Sobrien	${backward_srcdir}/complex.h \
16397403Sobrien	${backward_srcdir}/iomanip.h \
16497403Sobrien	${backward_srcdir}/istream.h \
16597403Sobrien	${backward_srcdir}/ostream.h \
16697403Sobrien	${backward_srcdir}/stream.h \
16797403Sobrien	${backward_srcdir}/streambuf.h \
16897403Sobrien	${backward_srcdir}/algo.h \
16997403Sobrien	${backward_srcdir}/algobase.h \
17097403Sobrien	${backward_srcdir}/alloc.h \
17197403Sobrien	${backward_srcdir}/bvector.h \
17297403Sobrien	${backward_srcdir}/defalloc.h \
17397403Sobrien	${backward_srcdir}/deque.h \
17497403Sobrien	${backward_srcdir}/function.h \
17597403Sobrien	${backward_srcdir}/hash_map.h \
17697403Sobrien	${backward_srcdir}/hash_set.h \
17797403Sobrien	${backward_srcdir}/hashtable.h \
17897403Sobrien	${backward_srcdir}/heap.h \
17997403Sobrien	${backward_srcdir}/iostream.h \
18097403Sobrien	${backward_srcdir}/iterator.h \
18197403Sobrien	${backward_srcdir}/list.h \
18297403Sobrien	${backward_srcdir}/map.h \
18397403Sobrien	${backward_srcdir}/multimap.h \
18497403Sobrien	${backward_srcdir}/new.h \
18597403Sobrien	${backward_srcdir}/multiset.h \
18697403Sobrien	${backward_srcdir}/pair.h \
18797403Sobrien	${backward_srcdir}/queue.h \
18897403Sobrien	${backward_srcdir}/rope.h \
18997403Sobrien	${backward_srcdir}/set.h \
19097403Sobrien	${backward_srcdir}/slist.h \
19197403Sobrien	${backward_srcdir}/stack.h \
19297403Sobrien	${backward_srcdir}/tempbuf.h \
19397403Sobrien	${backward_srcdir}/tree.h \
19497403Sobrien	${backward_srcdir}/vector.h \
19597403Sobrien	${backward_srcdir}/fstream.h \
19697403Sobrien	${backward_srcdir}/strstream \
19797403Sobrien	${backward_srcdir}/backward_warning.h
19897403Sobrien
199169691Skan
200169691Skanpb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds
201169691Skanpb_builddir = ./ext/pb_ds
202169691Skan
203169691Skanpb_subdirs = \
204169691Skan	${pb_builddir}/detail \
205169691Skan	${pb_builddir}/detail/pairing_heap_ \
206169691Skan	${pb_builddir}/detail/splay_tree_ \
207169691Skan	${pb_builddir}/detail/list_update_map_ \
208169691Skan	${pb_builddir}/detail/basic_tree_policy \
209169691Skan	${pb_builddir}/detail/trie_policy \
210169691Skan	${pb_builddir}/detail/gp_hash_table_map_ \
211169691Skan	${pb_builddir}/detail/tree_policy \
212169691Skan	${pb_builddir}/detail/binomial_heap_base_ \
213169691Skan	${pb_builddir}/detail/resize_policy \
214169691Skan	${pb_builddir}/detail/bin_search_tree_ \
215169691Skan	${pb_builddir}/detail/binomial_heap_ \
216169691Skan	${pb_builddir}/detail/thin_heap_ \
217169691Skan	${pb_builddir}/detail/pat_trie_ \
218169691Skan	${pb_builddir}/detail/cc_hash_table_map_ \
219169691Skan	${pb_builddir}/detail/rc_binomial_heap_ \
220169691Skan	${pb_builddir}/detail/left_child_next_sibling_heap_ \
221169691Skan	${pb_builddir}/detail/unordered_iterator \
222169691Skan	${pb_builddir}/detail/binary_heap_ \
223169691Skan	${pb_builddir}/detail/ov_tree_map_ \
224169691Skan	${pb_builddir}/detail/hash_fn \
225169691Skan	${pb_builddir}/detail/eq_fn \
226169691Skan	${pb_builddir}/detail/rb_tree_map_ \
227169691Skan	${pb_builddir}/detail/list_update_policy
228169691Skan
229169691Skan# The ability for make and the underlying host to deal with this
230169691Skan# unweildy list as one entire entity is not a sure thing, and may
231169691Skan# cause build errors. Thus, split one list into many smaller
232169691Skan# mini-lists, with the maximum size per mini-list of no more than 42.
233169691Skan
234169691Skanpb_headers1 = \
235169691Skan	${pb_srcdir}/assoc_container.hpp \
236169691Skan	${pb_srcdir}/exception.hpp \
237169691Skan	${pb_srcdir}/hash_policy.hpp \
238169691Skan	${pb_srcdir}/list_update_policy.hpp \
239169691Skan	${pb_srcdir}/priority_queue.hpp \
240169691Skan	${pb_srcdir}/tag_and_trait.hpp \
241169691Skan	${pb_srcdir}/tree_policy.hpp \
242169691Skan	${pb_srcdir}/trie_policy.hpp \
243169691Skan	${pb_srcdir}/detail/basic_tree_policy/basic_tree_policy_base.hpp \
244169691Skan	${pb_srcdir}/detail/basic_tree_policy/null_node_metadata.hpp \
245169691Skan	${pb_srcdir}/detail/basic_tree_policy/traits.hpp \
246169691Skan	${pb_srcdir}/detail/basic_types.hpp \
247169691Skan	${pb_srcdir}/detail/binary_heap_/binary_heap_.hpp \
248169691Skan	${pb_srcdir}/detail/binary_heap_/const_iterator.hpp \
249169691Skan	${pb_srcdir}/detail/binary_heap_/const_point_iterator.hpp \
250169691Skan	${pb_srcdir}/detail/binary_heap_/constructors_destructor_fn_imps.hpp \
251169691Skan	${pb_srcdir}/detail/binary_heap_/debug_fn_imps.hpp \
252169691Skan	${pb_srcdir}/detail/binary_heap_/entry_cmp.hpp \
253169691Skan	${pb_srcdir}/detail/binary_heap_/entry_pred.hpp \
254169691Skan	${pb_srcdir}/detail/binary_heap_/erase_fn_imps.hpp \
255169691Skan	${pb_srcdir}/detail/binary_heap_/find_fn_imps.hpp \
256169691Skan	${pb_srcdir}/detail/binary_heap_/info_fn_imps.hpp \
257169691Skan	${pb_srcdir}/detail/binary_heap_/insert_fn_imps.hpp \
258169691Skan	${pb_srcdir}/detail/binary_heap_/iterators_fn_imps.hpp \
259169691Skan	${pb_srcdir}/detail/binary_heap_/policy_access_fn_imps.hpp \
260169691Skan	${pb_srcdir}/detail/binary_heap_/resize_policy.hpp \
261169691Skan	${pb_srcdir}/detail/binary_heap_/split_join_fn_imps.hpp \
262169691Skan	${pb_srcdir}/detail/binary_heap_/trace_fn_imps.hpp \
263169691Skan	${pb_srcdir}/detail/binomial_heap_base_/binomial_heap_base_.hpp \
264169691Skan	${pb_srcdir}/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp \
265169691Skan	${pb_srcdir}/detail/binomial_heap_base_/debug_fn_imps.hpp \
266169691Skan	${pb_srcdir}/detail/binomial_heap_base_/erase_fn_imps.hpp \
267169691Skan	${pb_srcdir}/detail/binomial_heap_base_/find_fn_imps.hpp \
268169691Skan	${pb_srcdir}/detail/binomial_heap_base_/insert_fn_imps.hpp \
269169691Skan	${pb_srcdir}/detail/binomial_heap_base_/split_join_fn_imps.hpp \
270169691Skan	${pb_srcdir}/detail/binomial_heap_/binomial_heap_.hpp \
271169691Skan	${pb_srcdir}/detail/binomial_heap_/constructors_destructor_fn_imps.hpp \
272169691Skan	${pb_srcdir}/detail/binomial_heap_/debug_fn_imps.hpp \
273169691Skan	${pb_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \
274169691Skan	${pb_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \
275169691Skan	${pb_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp 
276169691Skan
277169691Skanpb_headers2 = \
278169691Skan	${pb_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \
279169691Skan	${pb_srcdir}/detail/bin_search_tree_/debug_fn_imps.hpp \
280169691Skan	${pb_srcdir}/detail/bin_search_tree_/erase_fn_imps.hpp \
281169691Skan	${pb_srcdir}/detail/bin_search_tree_/find_fn_imps.hpp \
282169691Skan	${pb_srcdir}/detail/bin_search_tree_/info_fn_imps.hpp \
283169691Skan	${pb_srcdir}/detail/bin_search_tree_/insert_fn_imps.hpp \
284169691Skan	${pb_srcdir}/detail/bin_search_tree_/iterators_fn_imps.hpp \
285169691Skan	${pb_srcdir}/detail/bin_search_tree_/node_iterators.hpp \
286169691Skan	${pb_srcdir}/detail/bin_search_tree_/point_iterators.hpp \
287169691Skan	${pb_srcdir}/detail/bin_search_tree_/policy_access_fn_imps.hpp \
288169691Skan	${pb_srcdir}/detail/bin_search_tree_/r_erase_fn_imps.hpp \
289169691Skan	${pb_srcdir}/detail/bin_search_tree_/rotate_fn_imps.hpp \
290169691Skan	${pb_srcdir}/detail/bin_search_tree_/split_join_fn_imps.hpp \
291169691Skan	${pb_srcdir}/detail/bin_search_tree_/traits.hpp \
292169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/cc_ht_map_.hpp \
293169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/cmp_fn_imps.hpp \
294169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp \
295169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp \
296169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
297169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
298169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/debug_fn_imps.hpp \
299169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
300169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp \
301169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/entry_list_fn_imps.hpp \
302169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/erase_fn_imps.hpp \
303169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
304169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp \
305169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/find_fn_imps.hpp \
306169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp \
307169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/info_fn_imps.hpp \
308169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/insert_fn_imps.hpp \
309169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
310169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp \
311169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/iterators_fn_imps.hpp \
312169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/policy_access_fn_imps.hpp \
313169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/resize_fn_imps.hpp \
314169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
315169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp \
316169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/size_fn_imps.hpp \
317169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/standard_policies.hpp 
318169691Skan
319169691Skanpb_headers3 = \
320169691Skan	${pb_srcdir}/detail/cc_hash_table_map_/trace_fn_imps.hpp \
321169691Skan	${pb_srcdir}/detail/cond_dealtor.hpp \
322169691Skan	${pb_srcdir}/detail/constructors_destructor_fn_imps.hpp \
323169691Skan	${pb_srcdir}/detail/container_base_dispatch.hpp \
324169691Skan	${pb_srcdir}/detail/eq_fn/eq_by_less.hpp \
325169691Skan	${pb_srcdir}/detail/eq_fn/hash_eq_fn.hpp \
326169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp \
327169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
328169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
329169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/debug_fn_imps.hpp \
330169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
331169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp \
332169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/erase_fn_imps.hpp \
333169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
334169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp \
335169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/find_fn_imps.hpp \
336169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp \
337169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp \
338169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/gp_ht_map_.hpp \
339169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/info_fn_imps.hpp \
340169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/insert_fn_imps.hpp \
341169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
342169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp \
343169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/iterator_fn_imps.hpp \
344169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/policy_access_fn_imps.hpp \
345169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/resize_fn_imps.hpp \
346169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
347169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp \
348169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/standard_policies.hpp \
349169691Skan	${pb_srcdir}/detail/gp_hash_table_map_/trace_fn_imps.hpp \
350169691Skan	${pb_srcdir}/detail/hash_fn/direct_mask_range_hashing_imp.hpp \
351169691Skan	${pb_srcdir}/detail/hash_fn/direct_mod_range_hashing_imp.hpp \
352169691Skan	${pb_srcdir}/detail/hash_fn/linear_probe_fn_imp.hpp \
353169691Skan	${pb_srcdir}/detail/hash_fn/mask_based_range_hashing.hpp \
354169691Skan	${pb_srcdir}/detail/hash_fn/mod_based_range_hashing.hpp \
355169691Skan	${pb_srcdir}/detail/hash_fn/probe_fn_base.hpp \
356169691Skan	${pb_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \
357169691Skan	${pb_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \
358169691Skan	${pb_srcdir}/detail/hash_fn/ranged_probe_fn.hpp 
359169691Skan
360169691Skanpb_headers4 = \
361169691Skan	${pb_srcdir}/detail/hash_fn/sample_probe_fn.hpp \
362169691Skan	${pb_srcdir}/detail/hash_fn/sample_ranged_hash_fn.hpp \
363169691Skan	${pb_srcdir}/detail/hash_fn/sample_ranged_probe_fn.hpp \
364169691Skan	${pb_srcdir}/detail/hash_fn/sample_range_hashing.hpp \
365169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/const_iterator.hpp \
366169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/const_point_iterator.hpp \
367169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp \
368169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp \
369169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp \
370169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/info_fn_imps.hpp \
371169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp \
372169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp \
373169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp \
374169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/node.hpp \
375169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/null_metadata.hpp \
376169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp \
377169691Skan	${pb_srcdir}/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp \
378169691Skan	${pb_srcdir}/detail/list_update_map_/constructor_destructor_fn_imps.hpp \
379169691Skan	${pb_srcdir}/detail/list_update_map_/debug_fn_imps.hpp \
380169691Skan	${pb_srcdir}/detail/list_update_map_/entry_metadata_base.hpp \
381169691Skan	${pb_srcdir}/detail/list_update_map_/erase_fn_imps.hpp \
382169691Skan	${pb_srcdir}/detail/list_update_map_/find_fn_imps.hpp \
383169691Skan	${pb_srcdir}/detail/list_update_map_/info_fn_imps.hpp \
384169691Skan	${pb_srcdir}/detail/list_update_map_/insert_fn_imps.hpp \
385169691Skan	${pb_srcdir}/detail/list_update_map_/iterators_fn_imps.hpp \
386169691Skan	${pb_srcdir}/detail/list_update_map_/lu_map_.hpp \
387169691Skan	${pb_srcdir}/detail/list_update_map_/trace_fn_imps.hpp \
388169691Skan	${pb_srcdir}/detail/list_update_policy/counter_lu_metadata.hpp \
389169691Skan	${pb_srcdir}/detail/list_update_policy/counter_lu_policy_imp.hpp \
390169691Skan	${pb_srcdir}/detail/list_update_policy/mtf_lu_policy_imp.hpp \
391169691Skan	${pb_srcdir}/detail/list_update_policy/sample_update_policy.hpp \
392169691Skan	${pb_srcdir}/detail/map_debug_base.hpp \
393169691Skan	${pb_srcdir}/detail/ov_tree_map_/cond_dtor.hpp \
394169691Skan	${pb_srcdir}/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp \
395169691Skan	${pb_srcdir}/detail/ov_tree_map_/debug_fn_imps.hpp \
396169691Skan	${pb_srcdir}/detail/ov_tree_map_/erase_fn_imps.hpp \
397169691Skan	${pb_srcdir}/detail/ov_tree_map_/info_fn_imps.hpp \
398169691Skan	${pb_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \
399169691Skan	${pb_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \
400169691Skan	${pb_srcdir}/detail/ov_tree_map_/node_iterators.hpp \
401169691Skan	${pb_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp 
402169691Skan
403169691Skanpb_headers5 = \
404169691Skan	${pb_srcdir}/detail/ov_tree_map_/policy_access_fn_imps.hpp \
405169691Skan	${pb_srcdir}/detail/ov_tree_map_/split_join_fn_imps.hpp \
406169691Skan	${pb_srcdir}/detail/ov_tree_map_/traits.hpp \
407169691Skan	${pb_srcdir}/detail/pairing_heap_/constructors_destructor_fn_imps.hpp \
408169691Skan	${pb_srcdir}/detail/pairing_heap_/debug_fn_imps.hpp \
409169691Skan	${pb_srcdir}/detail/pairing_heap_/erase_fn_imps.hpp \
410169691Skan	${pb_srcdir}/detail/pairing_heap_/find_fn_imps.hpp \
411169691Skan	${pb_srcdir}/detail/pairing_heap_/insert_fn_imps.hpp \
412169691Skan	${pb_srcdir}/detail/pairing_heap_/pairing_heap_.hpp \
413169691Skan	${pb_srcdir}/detail/pairing_heap_/split_join_fn_imps.hpp \
414169691Skan	${pb_srcdir}/detail/pat_trie_/child_iterator.hpp \
415169691Skan	${pb_srcdir}/detail/pat_trie_/cond_dtor_entry_dealtor.hpp \
416169691Skan	${pb_srcdir}/detail/pat_trie_/const_child_iterator.hpp \
417169691Skan	${pb_srcdir}/detail/pat_trie_/constructors_destructor_fn_imps.hpp \
418169691Skan	${pb_srcdir}/detail/pat_trie_/debug_fn_imps.hpp \
419169691Skan	${pb_srcdir}/detail/pat_trie_/erase_fn_imps.hpp \
420169691Skan	${pb_srcdir}/detail/pat_trie_/find_fn_imps.hpp \
421169691Skan	${pb_srcdir}/detail/pat_trie_/head.hpp \
422169691Skan	${pb_srcdir}/detail/pat_trie_/info_fn_imps.hpp \
423169691Skan	${pb_srcdir}/detail/pat_trie_/insert_join_fn_imps.hpp \
424169691Skan	${pb_srcdir}/detail/pat_trie_/internal_node.hpp \
425169691Skan	${pb_srcdir}/detail/pat_trie_/iterators_fn_imps.hpp \
426169691Skan	${pb_srcdir}/detail/pat_trie_/leaf.hpp \
427169691Skan	${pb_srcdir}/detail/pat_trie_/node_base.hpp \
428169691Skan	${pb_srcdir}/detail/pat_trie_/node_iterators.hpp \
429169691Skan	${pb_srcdir}/detail/pat_trie_/node_metadata_base.hpp \
430169691Skan	${pb_srcdir}/detail/pat_trie_/pat_trie_.hpp \
431169691Skan	${pb_srcdir}/detail/pat_trie_/point_iterators.hpp \
432169691Skan	${pb_srcdir}/detail/pat_trie_/policy_access_fn_imps.hpp \
433169691Skan	${pb_srcdir}/detail/pat_trie_/r_erase_fn_imps.hpp \
434169691Skan	${pb_srcdir}/detail/pat_trie_/rotate_fn_imps.hpp \
435169691Skan	${pb_srcdir}/detail/pat_trie_/split_fn_imps.hpp \
436169691Skan	${pb_srcdir}/detail/pat_trie_/split_join_branch_bag.hpp \
437169691Skan	${pb_srcdir}/detail/pat_trie_/synth_e_access_traits.hpp \
438169691Skan	${pb_srcdir}/detail/pat_trie_/trace_fn_imps.hpp \
439169691Skan	${pb_srcdir}/detail/pat_trie_/traits.hpp \
440169691Skan	${pb_srcdir}/detail/pat_trie_/update_fn_imps.hpp \
441169691Skan	${pb_srcdir}/detail/priority_queue_base_dispatch.hpp \
442169691Skan	${pb_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \
443169691Skan	${pb_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp 
444169691Skan
445169691Skanpb_headers6 = \
446169691Skan	${pb_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \
447169691Skan	${pb_srcdir}/detail/rb_tree_map_/find_fn_imps.hpp \
448169691Skan	${pb_srcdir}/detail/rb_tree_map_/info_fn_imps.hpp \
449169691Skan	${pb_srcdir}/detail/rb_tree_map_/insert_fn_imps.hpp \
450169691Skan	${pb_srcdir}/detail/rb_tree_map_/node.hpp \
451169691Skan	${pb_srcdir}/detail/rb_tree_map_/rb_tree_.hpp \
452169691Skan	${pb_srcdir}/detail/rb_tree_map_/split_join_fn_imps.hpp \
453169691Skan	${pb_srcdir}/detail/rb_tree_map_/traits.hpp \
454169691Skan	${pb_srcdir}/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp \
455169691Skan	${pb_srcdir}/detail/rc_binomial_heap_/debug_fn_imps.hpp \
456169691Skan	${pb_srcdir}/detail/rc_binomial_heap_/erase_fn_imps.hpp \
457169691Skan	${pb_srcdir}/detail/rc_binomial_heap_/insert_fn_imps.hpp \
458169691Skan	${pb_srcdir}/detail/rc_binomial_heap_/rc_binomial_heap_.hpp \
459169691Skan	${pb_srcdir}/detail/rc_binomial_heap_/rc.hpp \
460169691Skan	${pb_srcdir}/detail/rc_binomial_heap_/split_join_fn_imps.hpp \
461169691Skan	${pb_srcdir}/detail/rc_binomial_heap_/trace_fn_imps.hpp \
462169691Skan	${pb_srcdir}/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp \
463169691Skan	${pb_srcdir}/detail/resize_policy/hash_exponential_size_policy_imp.hpp \
464169691Skan	${pb_srcdir}/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp \
465169691Skan	${pb_srcdir}/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp \
466169691Skan	${pb_srcdir}/detail/resize_policy/hash_prime_size_policy_imp.hpp \
467169691Skan	${pb_srcdir}/detail/resize_policy/hash_standard_resize_policy_imp.hpp \
468169691Skan	${pb_srcdir}/detail/resize_policy/sample_resize_policy.hpp \
469169691Skan	${pb_srcdir}/detail/resize_policy/sample_resize_trigger.hpp \
470169691Skan	${pb_srcdir}/detail/resize_policy/sample_size_policy.hpp \
471169691Skan	${pb_srcdir}/detail/splay_tree_/constructors_destructor_fn_imps.hpp \
472169691Skan	${pb_srcdir}/detail/splay_tree_/debug_fn_imps.hpp \
473169691Skan	${pb_srcdir}/detail/splay_tree_/erase_fn_imps.hpp \
474169691Skan	${pb_srcdir}/detail/splay_tree_/find_fn_imps.hpp \
475169691Skan	${pb_srcdir}/detail/splay_tree_/info_fn_imps.hpp \
476169691Skan	${pb_srcdir}/detail/splay_tree_/insert_fn_imps.hpp \
477169691Skan	${pb_srcdir}/detail/splay_tree_/node.hpp \
478169691Skan	${pb_srcdir}/detail/splay_tree_/splay_fn_imps.hpp \
479169691Skan	${pb_srcdir}/detail/splay_tree_/splay_tree_.hpp \
480169691Skan	${pb_srcdir}/detail/splay_tree_/split_join_fn_imps.hpp \
481169691Skan	${pb_srcdir}/detail/splay_tree_/traits.hpp \
482169691Skan	${pb_srcdir}/detail/standard_policies.hpp \
483169691Skan	${pb_srcdir}/detail/thin_heap_/constructors_destructor_fn_imps.hpp \
484169691Skan	${pb_srcdir}/detail/thin_heap_/debug_fn_imps.hpp \
485169691Skan	${pb_srcdir}/detail/thin_heap_/erase_fn_imps.hpp 
486169691Skan
487169691Skanpb_headers7 = \
488169691Skan	${pb_srcdir}/detail/thin_heap_/find_fn_imps.hpp \
489169691Skan	${pb_srcdir}/detail/thin_heap_/insert_fn_imps.hpp \
490169691Skan	${pb_srcdir}/detail/thin_heap_/split_join_fn_imps.hpp \
491169691Skan	${pb_srcdir}/detail/thin_heap_/thin_heap_.hpp \
492169691Skan	${pb_srcdir}/detail/thin_heap_/trace_fn_imps.hpp \
493169691Skan	${pb_srcdir}/detail/tree_policy/node_metadata_selector.hpp \
494169691Skan	${pb_srcdir}/detail/tree_policy/null_node_update_imp.hpp \
495169691Skan	${pb_srcdir}/detail/tree_policy/order_statistics_imp.hpp \
496169691Skan	${pb_srcdir}/detail/tree_policy/sample_tree_node_update.hpp \
497169691Skan	${pb_srcdir}/detail/tree_trace_base.hpp \
498169691Skan	${pb_srcdir}/detail/trie_policy/node_metadata_selector.hpp \
499169691Skan	${pb_srcdir}/detail/trie_policy/null_node_update_imp.hpp \
500169691Skan	${pb_srcdir}/detail/trie_policy/order_statistics_imp.hpp \
501169691Skan	${pb_srcdir}/detail/trie_policy/prefix_search_node_update_imp.hpp \
502169691Skan	${pb_srcdir}/detail/trie_policy/sample_trie_e_access_traits.hpp \
503169691Skan	${pb_srcdir}/detail/trie_policy/sample_trie_node_update.hpp \
504169691Skan	${pb_srcdir}/detail/trie_policy/string_trie_e_access_traits_imp.hpp \
505169691Skan	${pb_srcdir}/detail/trie_policy/trie_policy_base.hpp \
506169691Skan	${pb_srcdir}/detail/types_traits.hpp \
507169691Skan	${pb_srcdir}/detail/type_utils.hpp \
508169691Skan	${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \
509169691Skan	${pb_srcdir}/detail/unordered_iterator/const_point_iterator.hpp \
510169691Skan	${pb_srcdir}/detail/unordered_iterator/iterator.hpp \
511169691Skan	${pb_srcdir}/detail/unordered_iterator/point_iterator.hpp 
512169691Skan
513169691Skan
514169691Skan
515132720Skanext_srcdir = ${glibcxx_srcdir}/include/ext
516169691Skanext_builddir = ./ext 
51797403Sobrienext_headers = \
51897403Sobrien	${ext_srcdir}/algorithm \
519169691Skan	${ext_srcdir}/atomicity.h \
520169691Skan	${ext_srcdir}/array_allocator.h \
521132720Skan	${ext_srcdir}/bitmap_allocator.h \
522169691Skan	${ext_srcdir}/codecvt_specializations.h \
523169691Skan	${ext_srcdir}/concurrence.h \
524132720Skan	${ext_srcdir}/debug_allocator.h \
52597403Sobrien	${ext_srcdir}/stdio_filebuf.h \
526132720Skan	${ext_srcdir}/stdio_sync_filebuf.h \
52797403Sobrien	${ext_srcdir}/functional \
52897403Sobrien	${ext_srcdir}/hash_map \
52997403Sobrien	${ext_srcdir}/hash_set \
530169691Skan	${ext_srcdir}/hash_fun.h \
531169691Skan	${ext_srcdir}/hashtable.h \
53297403Sobrien	${ext_srcdir}/iterator \
533132720Skan	${ext_srcdir}/malloc_allocator.h \
53497403Sobrien	${ext_srcdir}/memory \
535132720Skan	${ext_srcdir}/mt_allocator.h \
536132720Skan	${ext_srcdir}/new_allocator.h \
53797403Sobrien	${ext_srcdir}/numeric \
538169691Skan	${ext_srcdir}/numeric_traits.h \
539132720Skan	${ext_srcdir}/pod_char_traits.h \
540132720Skan	${ext_srcdir}/pool_allocator.h \
54197403Sobrien	${ext_srcdir}/rb_tree \
54297403Sobrien	${ext_srcdir}/rope \
54397403Sobrien	${ext_srcdir}/ropeimpl.h \
54497403Sobrien	${ext_srcdir}/slist \
545169691Skan	${ext_srcdir}/throw_allocator.h \
546169691Skan	${ext_srcdir}/typelist.h \
547169691Skan	${ext_srcdir}/type_traits.h \
548169691Skan	${ext_srcdir}/rc_string_base.h \
549169691Skan	${ext_srcdir}/sso_string_base.h \
550169691Skan	${ext_srcdir}/vstring.h \
551169691Skan	${ext_srcdir}/vstring.tcc \
552169691Skan	${ext_srcdir}/vstring_fwd.h \
553169691Skan	${ext_srcdir}/vstring_util.h	
55497403Sobrien
555169691Skan
556169691Skantr1_srcdir = ${glibcxx_srcdir}/include/tr1
557169691Skantr1_builddir = ./tr1
558169691Skantr1_headers = \
559169691Skan	${tr1_srcdir}/array \
560169691Skan	${tr1_srcdir}/bind_repeat.h \
561169691Skan	${tr1_srcdir}/bind_iterate.h \
562169691Skan	${tr1_srcdir}/boost_shared_ptr.h \
563169691Skan	${tr1_srcdir}/cctype \
564169691Skan	${tr1_srcdir}/cfenv \
565169691Skan	${tr1_srcdir}/cfloat \
566169691Skan	${tr1_srcdir}/cinttypes \
567169691Skan	${tr1_srcdir}/climits \
568169691Skan	${tr1_srcdir}/cmath \
569169691Skan	${tr1_srcdir}/common.h \
570169691Skan	${tr1_srcdir}/complex \
571169691Skan	${tr1_srcdir}/cstdarg \
572169691Skan	${tr1_srcdir}/cstdbool \
573169691Skan	${tr1_srcdir}/cstdint \
574169691Skan	${tr1_srcdir}/cstdio \
575169691Skan	${tr1_srcdir}/cstdlib \
576169691Skan	${tr1_srcdir}/ctgmath \
577169691Skan	${tr1_srcdir}/ctime \
578169691Skan	${tr1_srcdir}/ctype.h \
579169691Skan	${tr1_srcdir}/cwchar \
580169691Skan	${tr1_srcdir}/cwctype \
581169691Skan	${tr1_srcdir}/fenv.h \
582169691Skan	${tr1_srcdir}/float.h \
583169691Skan	${tr1_srcdir}/functional \
584169691Skan	${tr1_srcdir}/functional_hash.h \
585169691Skan	${tr1_srcdir}/functional_iterate.h \
586169691Skan	${tr1_srcdir}/hashtable \
587169691Skan	${tr1_srcdir}/hashtable_policy.h \
588169691Skan	${tr1_srcdir}/inttypes.h \
589169691Skan	${tr1_srcdir}/limits.h \
590169691Skan	${tr1_srcdir}/math.h \
591169691Skan	${tr1_srcdir}/memory \
592169691Skan	${tr1_srcdir}/mu_iterate.h \
593169691Skan	${tr1_srcdir}/random \
594169691Skan	${tr1_srcdir}/random.tcc \
595169691Skan	${tr1_srcdir}/ref_fwd.h \
596169691Skan	${tr1_srcdir}/ref_wrap_iterate.h \
597169691Skan	${tr1_srcdir}/repeat.h \
598169691Skan	${tr1_srcdir}/stdarg.h \
599169691Skan	${tr1_srcdir}/stdbool.h \
600169691Skan	${tr1_srcdir}/stdint.h \
601169691Skan	${tr1_srcdir}/stdio.h \
602169691Skan	${tr1_srcdir}/stdlib.h \
603169691Skan	${tr1_srcdir}/tgmath.h \
604169691Skan	${tr1_srcdir}/tuple \
605169691Skan	${tr1_srcdir}/tuple_defs.h \
606169691Skan	${tr1_srcdir}/tuple_iterate.h \
607169691Skan	${tr1_srcdir}/type_traits \
608169691Skan	${tr1_srcdir}/type_traits_fwd.h \
609169691Skan	${tr1_srcdir}/unordered_set \
610169691Skan	${tr1_srcdir}/unordered_map \
611169691Skan	${tr1_srcdir}/utility \
612169691Skan	${tr1_srcdir}/wchar.h \
613169691Skan	${tr1_srcdir}/wctype.h
614169691Skan
615169691Skan
61697403Sobrien# This is the common subset of files that all three "C" header models use.
617132720Skanc_base_srcdir = $(C_INCLUDE_DIR)
61897403Sobrienc_base_builddir = .
61997403Sobrienc_base_headers = \
62097403Sobrien	${c_base_srcdir}/std_cassert.h \
62197403Sobrien	${c_base_srcdir}/std_cctype.h \
62297403Sobrien	${c_base_srcdir}/std_cerrno.h \
62397403Sobrien	${c_base_srcdir}/std_cfloat.h \
62497403Sobrien	${c_base_srcdir}/std_ciso646.h \
62597403Sobrien	${c_base_srcdir}/std_climits.h \
62697403Sobrien	${c_base_srcdir}/std_clocale.h \
62797403Sobrien	${c_base_srcdir}/std_cmath.h \
62897403Sobrien	${c_base_srcdir}/std_csetjmp.h \
62997403Sobrien	${c_base_srcdir}/std_csignal.h \
63097403Sobrien	${c_base_srcdir}/std_cstdarg.h \
63197403Sobrien	${c_base_srcdir}/std_cstddef.h \
63297403Sobrien	${c_base_srcdir}/std_cstdio.h \
63397403Sobrien	${c_base_srcdir}/std_cstdlib.h \
63497403Sobrien	${c_base_srcdir}/std_cstring.h \
63597403Sobrien	${c_base_srcdir}/std_ctime.h \
63697403Sobrien	${c_base_srcdir}/std_cwchar.h \
637132720Skan	${c_base_srcdir}/std_cwctype.h
63897403Sobrienc_base_headers_rename = \
63997403Sobrien	cassert \
64097403Sobrien	cctype \
64197403Sobrien	cerrno \
64297403Sobrien	cfloat \
64397403Sobrien	ciso646 \
64497403Sobrien	climits \
64597403Sobrien	clocale \
64697403Sobrien	cmath \
64797403Sobrien	csetjmp \
64897403Sobrien	csignal \
64997403Sobrien	cstdarg \
65097403Sobrien	cstddef \
65197403Sobrien	cstdio \
65297403Sobrien	cstdlib \
65397403Sobrien	cstring \
65497403Sobrien	ctime \
65597403Sobrien	cwchar \
656132720Skan	cwctype
65797403Sobrien
658102782Skan# "C" compatibility headers.
659132720Skanc_compatibility_srcdir = ${glibcxx_srcdir}/include/c_compatibility
660102782Skanc_compatibility_builddir = .
661102782Skanc_compatibility_headers = \
662102782Skan	${c_compatibility_srcdir}/assert.h \
663102782Skan	${c_compatibility_srcdir}/ctype.h \
664102782Skan	${c_compatibility_srcdir}/errno.h \
665102782Skan	${c_compatibility_srcdir}/float.h \
666102782Skan	${c_compatibility_srcdir}/iso646.h \
667102782Skan	${c_compatibility_srcdir}/limits.h \
668102782Skan	${c_compatibility_srcdir}/locale.h \
669102782Skan	${c_compatibility_srcdir}/math.h \
670102782Skan	${c_compatibility_srcdir}/setjmp.h \
671102782Skan	${c_compatibility_srcdir}/signal.h \
672102782Skan	${c_compatibility_srcdir}/stdarg.h \
673102782Skan	${c_compatibility_srcdir}/stddef.h \
674102782Skan	${c_compatibility_srcdir}/stdio.h \
675102782Skan	${c_compatibility_srcdir}/stdlib.h \
676102782Skan	${c_compatibility_srcdir}/string.h \
677102782Skan	${c_compatibility_srcdir}/time.h \
678102782Skan	${c_compatibility_srcdir}/wchar.h \
679132720Skan	${c_compatibility_srcdir}/wctype.h
680102782Skan
681132720Skan# Debug mode headers
682132720Skandebug_srcdir = ${glibcxx_srcdir}/include/debug
683132720Skandebug_builddir = ./debug
684132720Skandebug_headers = \
685132720Skan	${debug_srcdir}/bitset \
686132720Skan	${debug_srcdir}/debug.h \
687132720Skan	${debug_srcdir}/deque \
688132720Skan	${debug_srcdir}/formatter.h \
689169691Skan	${debug_srcdir}/functions.h \
690132720Skan	${debug_srcdir}/hash_map \
691132720Skan	${debug_srcdir}/hash_map.h \
692132720Skan	${debug_srcdir}/hash_multimap.h \
693132720Skan	${debug_srcdir}/hash_multiset.h \
694132720Skan	${debug_srcdir}/hash_set \
695132720Skan	${debug_srcdir}/hash_set.h \
696132720Skan	${debug_srcdir}/list \
697132720Skan	${debug_srcdir}/map \
698169691Skan	${debug_srcdir}/macros.h \
699132720Skan	${debug_srcdir}/map.h \
700132720Skan	${debug_srcdir}/multimap.h \
701132720Skan	${debug_srcdir}/multiset.h \
702132720Skan	${debug_srcdir}/safe_base.h \
703132720Skan	${debug_srcdir}/safe_iterator.h \
704132720Skan	${debug_srcdir}/safe_iterator.tcc \
705132720Skan	${debug_srcdir}/safe_sequence.h \
706132720Skan	${debug_srcdir}/set \
707132720Skan	${debug_srcdir}/set.h \
708132720Skan	${debug_srcdir}/string \
709132720Skan	${debug_srcdir}/vector
710132720Skan
71197403Sobrien# Some of the different "C" header models need extra files.
712102782Skan# Some "C" header schemes require the "C" compatibility headers.
71397403Sobrien# For --enable-cheaders=c_std
714132720Skanif GLIBCXX_C_HEADERS_C_STD
715132720Skanc_base_headers_extra = ${c_base_srcdir}/cmath.tcc
71697403Sobrienelse
717132720Skanc_base_headers_extra =
71897403Sobrienendif
71997403Sobrien
720132720Skanif GLIBCXX_C_HEADERS_COMPATIBILITY
721102782Skanc_compatibility_headers_extra = ${c_compatibility_headers}
722102782Skanelse
723132720Skanc_compatibility_headers_extra =
724102782Skanendif
725102782Skan
726132720Skanhost_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR)
727132720Skanhost_builddir = ./${host_alias}/bits
728169691Skanhost_installdir = ${gxx_include_dir}/${host_alias}$(MULTISUBDIR)/bits
729132720Skanhost_headers = \
730132720Skan	${host_srcdir}/ctype_base.h \
731132720Skan	${host_srcdir}/ctype_inline.h \
732132720Skan	${host_srcdir}/ctype_noninline.h \
733132720Skan	${host_srcdir}/os_defines.h \
734169691Skan	${glibcxx_srcdir}/$(ATOMIC_WORD_SRCDIR)/atomic_word.h \
735169691Skan	${glibcxx_srcdir}/$(ABI_TWEAKS_SRCDIR)/cxxabi_tweaks.h \
736169691Skan	${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h	
737117397Skan
738132720Skan# Non-installed host_header files.
739169691SkanCOMPATIBILITY_H = config/abi/compatibility.h
740132720Skanhost_headers_noinst = \
741169691Skan	${glibcxx_srcdir}/$(CLOCALE_INTERNAL_H) \
742169691Skan	${glibcxx_srcdir}/$(COMPATIBILITY_H)
743117397Skan
744132720Skan# These host_headers_extra files are all built with ad hoc naming rules.
745132720Skanhost_headers_extra = \
746132720Skan	${host_builddir}/basic_file.h \
747132720Skan	${host_builddir}/c++config.h \
748132720Skan	${host_builddir}/c++allocator.h \
749132720Skan	${host_builddir}/c++io.h \
750132720Skan	${host_builddir}/c++locale.h \
751132720Skan	${host_builddir}/messages_members.h \
752169691Skan	${host_builddir}/time_members.h 
75397403Sobrien
754132720Skanthread_host_headers = \
755132720Skan	${host_builddir}/gthr.h \
756132720Skan	${host_builddir}/gthr-single.h \
757132720Skan	${host_builddir}/gthr-posix.h \
758169691Skan	${host_builddir}/gthr-tpf.h \
759132720Skan	${host_builddir}/gthr-default.h
76097403Sobrien
761169691Skan
762169691Skanpch1_source = ${glibcxx_srcdir}/include/precompiled/stdc++.h
763169691Skanpch1_output_builddir = ${host_builddir}/stdc++.h.gch
764169691Skanpch1_output_anchor = ${host_builddir}/stdc++.h
765169691Skanpch1_output_installdir = ${host_installdir}/stdc++.h.gch
766169691Skanpch1a_output = ${pch1_output_builddir}/O0g.gch
767169691Skanpch1b_output = ${pch1_output_builddir}/O2g.gch
768169691Skanpch1_output = ${pch1a_output} ${pch1b_output}
769169691Skan
770169691Skanpch2_source = ${glibcxx_srcdir}/include/precompiled/stdtr1c++.h
771169691Skanpch2_output_builddir = ${host_builddir}/stdtr1c++.h.gch
772169691Skanpch2_output_anchor = ${host_builddir}/stdtr1c++.h
773169691Skanpch2_output_installdir = ${host_installdir}/stdtr1c++.h.gch
774169691Skanpch2_output = ${pch2_output_builddir}/O2g.gch
775169691Skan
776169691Skanpch3_source = ${glibcxx_srcdir}/include/precompiled/extc++.h
777169691Skanpch3_output_builddir = ${host_builddir}/extc++.h.gch
778169691Skanpch3_output_anchor = ${host_builddir}/extc++.h
779169691Skanpch3_output_installdir = ${host_installdir}/extc++.h.gch
780169691Skanpch3_output = ${pch3_output_builddir}/O2g.gch
781169691Skan
782169691Skan
783169691Skanpch_output = ${pch1_output} ${pch2_output} ${pch3_output}
784169691Skanpch_output_dirs = \
785169691Skan	${pch1_output_builddir} ${pch2_output_builddir} ${pch3_output_builddir}
786169691Skanpch_output_anchors = \
787169691Skan	${pch1_output_anchor} ${pch2_output_anchor} ${pch3_output_anchor}
788132720SkanPCHFLAGS=-Winvalid-pch -Wno-deprecated -x c++-header $(CXXFLAGS)
789132720Skanif GLIBCXX_BUILD_PCH
790169691Skanpch_build = ${pch_output}
791132720Skanpch_install = install-pch
792132720Skanelse
793132720Skanpch_build =
794132720Skanpch_install =
795132720Skanendif
796132720Skan
79797403Sobrien# List of all timestamp files.  By keeping only one copy of this list, both
79897403Sobrien# CLEANFILES and all-local are kept up-to-date.
799132720Skanallstamped = \
800102782Skan	stamp-std stamp-bits stamp-c_base stamp-c_compatibility \
801169691Skan	stamp-backward stamp-ext stamp-pb stamp-tr1 stamp-debug stamp-host
80297403Sobrien
803132720Skan# List of all files that are created by explicit building, editing, or
804132720Skan# catenation.
805132720Skanallcreated = \
806132720Skan	${host_builddir}/c++config.h \
807132720Skan	${thread_host_headers} \
808132720Skan	${pch_build}
809132720Skan
81097403Sobrien# Here are the rules for building the headers
811132720Skanall-local: ${allstamped} ${allcreated}
81297403Sobrien
81397403Sobrien# This rule is slightly different, in that we must change the name of the
81497403Sobrien# local file from std_foo.h to foo.
81597403Sobrienstamp-std: ${std_headers}
81697403Sobrien	@if [ ! -d "${std_builddir}" ]; then \
81797403Sobrien	  mkdir -p ${std_builddir} ;\
81897403Sobrien	fi ;\
819132720Skan	if [ ! -f stamp-std ]; then \
820132720Skan	  (cd ${std_builddir} && for h in $?; do \
821169691Skan	    build_name=`echo $$h | sed -e 's,.*/std_,,' -e 's,\.h$$,,'` ;\
822169691Skan	    $(LN_S) $$h ./$${build_name} || true ;\
823132720Skan	  done) ;\
824132720Skan	fi ;\
825132720Skan	$(STAMP) stamp-std
82697403Sobrien
82797403Sobrienstamp-bits: ${bits_headers}
82897403Sobrien	@if [ ! -d "${bits_builddir}" ]; then \
82997403Sobrien	  mkdir -p ${bits_builddir} ;\
83097403Sobrien	fi ;\
831132720Skan	if [ ! -f stamp-bits ]; then \
832132720Skan	  (cd ${bits_builddir} && $(LN_S) $? . || true) ;\
833132720Skan	fi ;\
834132720Skan	$(STAMP) stamp-bits
83597403Sobrien
836132720Skanstamp-c_base: stamp-bits ${c_base_headers} ${c_base_headers_extra}
83797403Sobrien	@if [ ! -d "${c_base_builddir}" ]; then \
83897403Sobrien	  mkdir -p ${c_base_builddir} ;\
83997403Sobrien	fi ;\
840132720Skan	if [ ! -f stamp-c_base ]; then \
841132720Skan	  (cd ${c_base_builddir} && for h in ${c_base_headers}; do \
842169691Skan	    build_name=`echo $$h | sed -e 's,.*/std_,,' -e 's,\.h$$,,'` ;\
843169691Skan	    $(LN_S) $$h ./$${build_name} || true ;\
844132720Skan	  done) ;\
845132720Skan	  if [ ! -z "${c_base_headers_extra}" ]; then \
846132720Skan	  (cd ${bits_builddir} && $(LN_S) ${c_base_headers_extra}  . || true) ;\
847132720Skan	  fi ;\
84897403Sobrien	fi ;\
849132720Skan	$(STAMP) stamp-c_base
85097403Sobrien
851102782Skanstamp-c_compatibility: ${c_compatibility_headers_extra}
852102782Skan	@if [ ! -d "${c_compatibility_builddir}" ]; then \
853102782Skan	  mkdir -p ${c_compatibility_builddir} ;\
854102782Skan	fi ;\
855132720Skan	if [ ! -f stamp-c_compatibility ]; then \
856132720Skan	  if [ ! -z "${c_compatibility_headers_extra}" ]; then \
857132720Skan	    (cd ${c_compatibility_builddir} && $(LN_S) $? . || true) ;\
858132720Skan	  fi ;\
859102782Skan	fi ;\
860132720Skan	$(STAMP) stamp-c_compatibility
861102782Skan
86297403Sobrienstamp-backward: ${backward_headers}
86397403Sobrien	@if [ ! -d "${backward_builddir}" ]; then \
86497403Sobrien	  mkdir -p ${backward_builddir} ;\
86597403Sobrien	fi ;\
866132720Skan	if [ ! -f stamp-backward ]; then \
867132720Skan	  (cd ${backward_builddir} && $(LN_S) $? . || true) ;\
868132720Skan	fi ;\
869132720Skan	$(STAMP) stamp-backward
87097403Sobrien
87197403Sobrienstamp-ext: ${ext_headers}
87297403Sobrien	@if [ ! -d "${ext_builddir}" ]; then \
873132720Skan	    mkdir -p ${ext_builddir} ;\
87497403Sobrien	fi ;\
875132720Skan	if [ ! -f stamp-ext ]; then \
876132720Skan	  (cd ${ext_builddir} && $(LN_S) $? . || true) ;\
877132720Skan	fi ;\
878132720Skan	$(STAMP) stamp-ext
87997403Sobrien
880169691Skan# Have to deal with nested include directories, gah! Strip off source
881169691Skan# directory before making the link.
882169691Skan# XXX check  ${pb_headers}
883169691Skanstamp-pb:
884169691Skan	@if [ ! -d "${pb_builddir}" ]; then \
885169691Skan	    mkdir -p ${pb_subdirs} ;\
886169691Skan	fi 
887169691Skan	@if [ ! -f stamp-pb ]; then \
888169691Skan	    cd ${pb_builddir} && for h in ${pb_headers1}; do \
889169691Skan		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
890169691Skan		$(LN_S) $$h $${build_name} || true ;\
891169691Skan	      done ;\
892169691Skan	fi
893169691Skan	@if [ ! -f stamp-pb ]; then \
894169691Skan	    cd ${pb_builddir} && for h in ${pb_headers2}; do \
895169691Skan		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
896169691Skan		$(LN_S) $$h $${build_name} || true ;\
897169691Skan	      done ;\
898169691Skan	fi
899169691Skan	@if [ ! -f stamp-pb ]; then \
900169691Skan	    cd ${pb_builddir} && for h in ${pb_headers3}; do \
901169691Skan		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
902169691Skan		$(LN_S) $$h $${build_name} || true ;\
903169691Skan	      done ;\
904169691Skan	fi
905169691Skan	@if [ ! -f stamp-pb ]; then \
906169691Skan	    cd ${pb_builddir} && for h in ${pb_headers4}; do \
907169691Skan		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
908169691Skan		$(LN_S) $$h $${build_name} || true ;\
909169691Skan	      done ;\
910169691Skan	fi
911169691Skan	@if [ ! -f stamp-pb ]; then \
912169691Skan	    cd ${pb_builddir} && for h in ${pb_headers5}; do \
913169691Skan		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
914169691Skan		$(LN_S) $$h $${build_name} || true ;\
915169691Skan	      done ;\
916169691Skan	fi
917169691Skan	@if [ ! -f stamp-pb ]; then \
918169691Skan	    cd ${pb_builddir} && for h in ${pb_headers6}; do \
919169691Skan		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
920169691Skan		$(LN_S) $$h $${build_name} || true ;\
921169691Skan	      done ;\
922169691Skan	fi
923169691Skan	@if [ ! -f stamp-pb ]; then \
924169691Skan	    cd ${pb_builddir} && for h in ${pb_headers7}; do \
925169691Skan		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
926169691Skan		$(LN_S) $$h $${build_name} || true ;\
927169691Skan	      done ;\
928169691Skan	fi
929169691Skan	$(STAMP) stamp-pb
930169691Skan
931169691Skanstamp-tr1: ${tr1_headers}
932169691Skan	@if [ ! -d "${tr1_builddir}" ]; then \
933169691Skan	    mkdir -p ${tr1_builddir} ;\
934169691Skan	fi ;\
935169691Skan	if [ ! -f stamp-tr1 ]; then \
936169691Skan	  (cd ${tr1_builddir} && $(LN_S) $? . || true) ;\
937169691Skan	fi ;\
938169691Skan	$(STAMP) stamp-tr1
939169691Skan
940132720Skanstamp-debug: ${debug_headers}
941132720Skan	@if [ ! -d "${debug_builddir}" ]; then \
942132720Skan	  mkdir -p ${debug_builddir} ;\
943132720Skan	fi ;\
944132720Skan	if [ ! -f stamp-debug ]; then \
945132720Skan	  (cd ${debug_builddir} && @LN_S@ $? . || true) ;\
946132720Skan	fi ;\
947132720Skan	$(STAMP) stamp-debug
94897403Sobrien
949132720Skanstamp-${host_alias}:
950132720Skan	@if [ ! -d ${host_builddir} ]; then \
951132720Skan	  mkdir -p ${host_builddir} ;\
952132720Skan	fi ;\
953132720Skan	$(STAMP) stamp-${host_alias}
95497403Sobrien
955132720Skan# Host includes static.
956132720Skan# XXX Missing dependency info for {host_headers_extra}
957132720Skanstamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
958132720Skan	@if [ ! -f stamp-host ]; then \
959132720Skan	  (cd ${host_builddir} ;\
960132720Skan	  $(LN_S) ${host_headers} . || true ;\
961132720Skan	  $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_H) basic_file.h || true ;\
962132720Skan	  $(LN_S) ${glibcxx_srcdir}/$(ALLOCATOR_H) c++allocator.h || true ;\
963132720Skan	  $(LN_S) ${glibcxx_srcdir}/$(CSTDIO_H) c++io.h || true ;\
964132720Skan	  $(LN_S) ${glibcxx_srcdir}/$(CLOCALE_H) c++locale.h || true ;\
965132720Skan	  $(LN_S) ${glibcxx_srcdir}/$(CLOCALE_INTERNAL_H) . || true ;\
966169691Skan	  $(LN_S) ${glibcxx_srcdir}/$(COMPATIBILITY_H) . || true ;\
967132720Skan	  $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_H) messages_members.h || true ;\
968169691Skan	  $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true);\
969132720Skan	fi ;\
970132720Skan	$(STAMP) stamp-host
971132720Skan
972132720Skan# Host includes dynamic.
973169691Skanif ENABLE_SYMVERS_GNU_NAMESPACE
974169691Skanstamp-namespace-version:
975169691Skan	echo 1 > stamp-namespace-version
976169691Skanelse
977169691Skanstamp-namespace-version:
978169691Skan	echo 0 > stamp-namespace-version
979169691Skanendif
980169691Skan
981169691Skanif ENABLE_VISIBILITY
982169691Skanstamp-visibility:
983169691Skan	echo 1 > stamp-visibility
984169691Skanelse
985169691Skanstamp-visibility:
986169691Skan	echo 0 > stamp-visibility
987169691Skanendif
988169691Skan
989171827Skan# NB: The non-empty default ldbl_compat works around an AIX sed
990171827Skan# oddity, see libstdc++/31957 for details.
991169691Skan${host_builddir}/c++config.h: ${CONFIG_HEADER} \
992169691Skan			      ${glibcxx_srcdir}/include/bits/c++config \
993169691Skan			      stamp-${host_alias} \
994169691Skan			      ${toplevel_srcdir}/gcc/DATESTAMP \
995169691Skan			      stamp-namespace-version \
996169691Skan			      stamp-visibility
997169691Skan	@date=`cat ${toplevel_srcdir}/gcc/DATESTAMP` ;\
998169691Skan	nsa_version=`cat stamp-namespace-version` ;\
999169691Skan	visibility=`cat stamp-visibility` ;\
1000171827Skan	ldbl_compat='s,g,g,' ;\
1001169691Skan	grep "^[ 	]*#[ 	]*define[ 	][ 	]*_GLIBCXX_LONG_DOUBLE_COMPAT[ 	][ 	]*1[ 	]*$$" \
1002169691Skan	${CONFIG_HEADER} > /dev/null 2>&1 \
1003169691Skan	&& ldbl_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_COMPAT 1,' ;\
1004169691Skan	sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
1005169691Skan	-e "s,define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION, define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION $$nsa_version," \
1006169691Skan	-e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \
1007169691Skan	-e "$$ldbl_compat" \
1008169691Skan            < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1009132720Skan	sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
1010132720Skan	    -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
1011132720Skan	    -e 's/VERSION/_GLIBCXX_VERSION/g' \
1012132720Skan	    -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
1013169691Skan	    -e '/[ 	]_GLIBCXX_LONG_DOUBLE_COMPAT[ 	]/d' \
101497403Sobrien	    < ${CONFIG_HEADER} >> $@ ;\
1015169691Skan	echo "" >> $@ ;\
1016169691Skan	echo "#endif // _CXXCONFIG_" >> $@
101797403Sobrien
1018132720Skan# Host includes for threads
101997403Sobrienuppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_]
102097403Sobrien
1021132720Skan${host_builddir}/gthr.h: ${toplevel_srcdir}/gcc/gthr.h stamp-${host_alias}
1022169691Skan	sed -e '/^#pragma/b' \
1023169691Skan	    -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \
1024132720Skan	    -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
102597403Sobrien	    -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
102697403Sobrien	    < ${toplevel_srcdir}/gcc/gthr.h > $@
102797403Sobrien
1028132720Skan${host_builddir}/gthr-single.h: ${toplevel_srcdir}/gcc/gthr-single.h \
1029132720Skan				  stamp-${host_alias}
1030132720Skan	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
1031132720Skan	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
103297403Sobrien	    < ${toplevel_srcdir}/gcc/gthr-single.h > $@
103397403Sobrien
1034132720Skan${host_builddir}/gthr-posix.h: ${toplevel_srcdir}/gcc/gthr-posix.h \
1035132720Skan				   stamp-${host_alias}
1036132720Skan	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
1037132720Skan	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
1038132720Skan	    -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
1039132720Skan	    -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
104097403Sobrien	    < ${toplevel_srcdir}/gcc/gthr-posix.h > $@
104197403Sobrien
1042169691Skan${host_builddir}/gthr-tpf.h: ${toplevel_srcdir}/gcc/gthr-tpf.h \
1043169691Skan				   stamp-${host_alias}
1044169691Skan	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
1045169691Skan	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
1046169691Skan	    -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
1047169691Skan	    -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
1048169691Skan	    < ${toplevel_srcdir}/gcc/gthr-tpf.h > $@
1049169691Skan
1050132720Skan${host_builddir}/gthr-default.h: ${toplevel_srcdir}/gcc/${glibcxx_thread_h} \
1051132720Skan				   stamp-${host_alias}
1052132720Skan	sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \
1053132720Skan	    -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \
1054132720Skan	    -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \
1055132720Skan	    -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \
105697403Sobrien	    -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
1057132720Skan	    < ${toplevel_srcdir}/gcc/${glibcxx_thread_h} > $@
105897403Sobrien
1059169691Skan# Build two precompiled C++ includes, stdc++.h.gch/*.gch
1060169691Skan${pch1a_output}: ${allstamped} ${host_builddir}/c++config.h ${pch1_source}
1061169691Skan	if [ ! -d "${pch1_output_builddir}" ]; then \
1062169691Skan	  mkdir -p ${pch1_output_builddir}; \
1063132720Skan	fi; \
1064169691Skan	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O0 -g ${pch1_source} -o $@
1065169691Skan	touch ${pch1_output_anchor}
1066132720Skan
1067169691Skan${pch1b_output}: ${allstamped} ${host_builddir}/c++config.h ${pch1_source}
1068169691Skan	if [ ! -d "${pch1_output_builddir}" ]; then \
1069169691Skan	  mkdir -p ${pch1_output_builddir}; \
1070169691Skan	fi; \
1071169691Skan	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch1_source} -o $@
1072169691Skan	touch ${pch1_output_anchor}
1073169691Skan
1074169691Skan# Build a precompiled TR1 include, stdtr1c++.h.gch/O2.gch
1075169691Skan${pch2_output}: ${pch2_source} ${pch1_output}
1076169691Skan	if [ ! -d "${pch2_output_builddir}" ]; then \
1077169691Skan	  mkdir -p ${pch2_output_builddir}; \
1078169691Skan	fi; \
1079169691Skan	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch2_source} -o $@
1080169691Skan	touch ${pch2_output_anchor}
1081169691Skan
1082169691Skan# Build a precompiled extension include, extc++.h.gch/O2.gch
1083169691Skan${pch3_output}: ${pch3_source} ${pch2_output}
1084169691Skan	if [ ! -d "${pch3_output_builddir}" ]; then \
1085169691Skan	  mkdir -p ${pch3_output_builddir}; \
1086169691Skan	fi; \
1087169691Skan	$(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch3_source} -o $@
1088169691Skan	touch ${pch3_output_anchor}
1089169691Skan
109097403Sobrien# For robustness sake (in light of junk files or in-source
109197403Sobrien# configuration), copy from the build or source tree to the install
109297403Sobrien# tree using only the human-maintained file lists and directory
109397403Sobrien# components.  Yes, with minor differences, this is sheer duplication
109497403Sobrien# of the staging rules above using $(INSTALL_DATA) instead of LN_S and
109597403Sobrien# `$(mkinstalldirs)' instead of `mkdir -p'.  In particular,
1096132720Skan# host_headers_extra are taken out of the build tree staging area;
109797403Sobrien# the rest are taken from the original source tree.
1098132720Skan
1099132720Skanif GLIBCXX_HOSTED
1100132720Skaninstall-data-local: install-headers ${pch_install}
1101132720Skanelse
1102132720Skaninstall-data-local: install-freestanding-headers
1103132720Skanendif
1104132720Skan
1105132720Skan# This is a subset of the full install-headers rule.  We only need <cstddef>,
1106132720Skan# <limits>, <cstdlib>, <cstdarg>, <new>, <typeinfo>, <exception>, and any
1107132720Skan# files which they include (and which we provide).  The last three headers
1108132720Skan# are installed by libsupc++, so only the first four and the sub-includes
1109132720Skan# are copied here.
1110132720Skaninstall-freestanding-headers:
1111110614Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
1112169691Skan	$(mkinstalldirs) $(DESTDIR)${host_installdir}
1113132720Skan	for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h; do \
1114169691Skan	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
1115132720Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
1116132720Skan	$(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir}
1117132720Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
1118132720Skan	for file in cstddef cstdlib cstdarg; do \
1119132720Skan	  $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done
1120132720Skan
1121132720Skan# The real deal.
1122132720Skaninstall-headers:
1123132720Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
1124110614Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir}
112597403Sobrien	for file in ${bits_headers}; do \
1126110614Skan	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
1127110614Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${backward_builddir}
112897403Sobrien	for file in ${backward_headers}; do \
1129110614Skan	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${backward_builddir}; done
1130110614Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir}
113197403Sobrien	for file in ${ext_headers}; do \
1132110614Skan	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done
1133169691Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pb_builddir}
1134169691Skan	for dir in ${pb_subdirs}; do \
1135169691Skan	  $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/$${dir} ; done
1136169691Skan	for file in ${pb_headers1}; do \
1137169691Skan	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
1138169691Skan	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
1139169691Skan	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
1140169691Skan	for file in ${pb_headers2}; do \
1141169691Skan	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
1142169691Skan	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
1143169691Skan	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
1144169691Skan	for file in ${pb_headers3}; do \
1145169691Skan	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
1146169691Skan	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
1147169691Skan	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
1148169691Skan	for file in ${pb_headers4}; do \
1149169691Skan	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
1150169691Skan	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
1151169691Skan	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
1152169691Skan	for file in ${pb_headers5}; do \
1153169691Skan	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
1154169691Skan	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
1155169691Skan	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
1156169691Skan	for file in ${pb_headers6}; do \
1157169691Skan	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
1158169691Skan	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
1159169691Skan	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
1160169691Skan	for file in ${pb_headers7}; do \
1161169691Skan	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
1162169691Skan	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
1163169691Skan	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
1164169691Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${tr1_builddir}
1165169691Skan	for file in ${tr1_headers}; do \
1166169691Skan	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${tr1_builddir}; done
1167110614Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
116897403Sobrien	for file in ${c_base_headers_rename}; do \
1169110614Skan	  $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done
1170102782Skan	c_base_headers_extra_install='$(c_base_headers_extra)';\
117197403Sobrien	for file in $$c_base_headers_extra_install; do \
1172110614Skan	  $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
1173102782Skan	c_compatibility_headers_install='$(c_compatibility_headers_extra)';\
1174102782Skan	for file in $$c_compatibility_headers_install; do \
1175110614Skan	  $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done
1176110614Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
117797403Sobrien	for file in ${std_headers_rename}; do \
1178110614Skan	  $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done
1179132720Skan	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${debug_builddir}
1180132720Skan	for file in ${debug_headers}; do \
1181132720Skan	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${debug_builddir}; done
1182169691Skan	$(mkinstalldirs) $(DESTDIR)${host_installdir}
1183132720Skan	for file in ${host_headers} ${host_headers_extra} \
1184132720Skan	 ${thread_host_headers}; do \
1185169691Skan	  $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
118697403Sobrien
1187132720Skaninstall-pch:
1188169691Skan	$(mkinstalldirs) $(DESTDIR)${pch1_output_installdir}
1189169691Skan	for file in ${pch1_output_builddir}/*; do \
1190169691Skan	  $(INSTALL_DATA) $$file $(DESTDIR)${pch1_output_installdir}; done
1191169691Skan	$(mkinstalldirs) $(DESTDIR)${pch2_output_installdir}
1192169691Skan	for file in ${pch2_output_builddir}/*; do \
1193169691Skan	  $(INSTALL_DATA) $$file $(DESTDIR)${pch2_output_installdir}; done
1194169691Skan	$(INSTALL_DATA) ${pch1_output_anchor} $(DESTDIR)${host_installdir}
1195169691Skan	$(INSTALL_DATA) ${pch2_output_anchor} $(DESTDIR)${host_installdir}
1196132720Skan
119797403Sobrien# By adding these files here, automake will remove them for 'make clean'
1198169691SkanCLEANFILES = ${pch_output} ${pch_output_anchors}
119997403Sobrien
1200169691Skan# To remove directories.
1201169691Skanclean-local:
1202169691Skan	rm -rf ${pch_output_dirs}
1203169691Skan
120497403Sobrien# Stop implicit '.o' make rules from ever stomping on extensionless
120597403Sobrien# headers, in the improbable case where some foolish, crack-addled
120697403Sobrien# developer tries to create them via make in the include build
120797403Sobrien# directory. (This is more of an example of how this kind of rule can
120897403Sobrien# be made.)
120997403Sobrien.PRECIOUS: $(std_headers_rename) $(c_base_headers_rename)
121097403Sobrien$(std_headers_rename): ; @:
121197403Sobrien$(c_base_headers_rename): ; @:
1212