X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Finclude%2FMakefile.am;h=23aad14692cf76b4296c8b367cdb1d229fa2e0de;hb=5d279b6df2658c28ae89e52285869bf175409430;hp=68e8e35b3ded7e05df0c93038772a69464519069;hpb=da9ed05f39f5462eef21ba42b3733e49f7e3c232;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am index 68e8e35b3de..23aad14692c 100644 --- a/libstdc++-v3/include/Makefile.am +++ b/libstdc++-v3/include/Makefile.am @@ -1,6 +1,6 @@ -## Makefile for the include subdirectory of the GNU C++ Standard library. +#o# Makefile for the include subdirectory of the GNU C++ Standard library. ## -## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ## Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. @@ -9,7 +9,7 @@ ## This file is part of the GNU ISO C++ Library. This library is free ## software; you can redistribute it and/or modify it under the ## terms of the GNU General Public License as published by the -## Free Software Foundation; either version 2, or (at your option) +## Free Software Foundation; either version 3, or (at your option) ## any later version. ## This library is distributed in the hope that it will be useful, @@ -18,9 +18,8 @@ ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License along -## with this library; see the file COPYING. If not, write to the Free -## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -## USA. +## with this library; see the file COPYING3. If not see +## . include $(top_srcdir)/fragment.am @@ -30,13 +29,16 @@ std_builddir = . std_headers = \ ${std_srcdir}/algorithm \ ${std_srcdir}/array \ + ${std_srcdir}/atomic \ ${std_srcdir}/bitset \ - ${std_srcdir}/c++0x_warning.h \ + ${std_srcdir}/chrono \ ${std_srcdir}/complex \ - ${std_srcdir}/date_time \ + ${std_srcdir}/condition_variable \ ${std_srcdir}/deque \ + ${std_srcdir}/forward_list \ ${std_srcdir}/fstream \ ${std_srcdir}/functional \ + ${std_srcdir}/future \ ${std_srcdir}/iomanip \ ${std_srcdir}/ios \ ${std_srcdir}/iosfwd \ @@ -48,10 +50,12 @@ std_headers = \ ${std_srcdir}/locale \ ${std_srcdir}/map \ ${std_srcdir}/memory \ + ${std_srcdir}/mutex \ ${std_srcdir}/numeric \ ${std_srcdir}/ostream \ ${std_srcdir}/queue \ ${std_srcdir}/random \ + ${std_srcdir}/ratio \ ${std_srcdir}/regex \ ${std_srcdir}/set \ ${std_srcdir}/sstream \ @@ -60,6 +64,7 @@ std_headers = \ ${std_srcdir}/streambuf \ ${std_srcdir}/string \ ${std_srcdir}/system_error \ + ${std_srcdir}/thread \ ${std_srcdir}/tuple \ ${std_srcdir}/type_traits \ ${std_srcdir}/unordered_map \ @@ -73,23 +78,31 @@ bits_builddir = ./bits bits_headers = \ ${bits_srcdir}/algorithmfwd.h \ ${bits_srcdir}/allocator.h \ + ${bits_srcdir}/atomic_base.h \ + ${bits_srcdir}/atomicfwd_c.h \ + ${bits_srcdir}/atomicfwd_cxx.h \ + ${bits_srcdir}/atomic_0.h \ + ${bits_srcdir}/atomic_2.h \ ${bits_srcdir}/basic_ios.h \ ${bits_srcdir}/basic_ios.tcc \ ${bits_srcdir}/basic_string.h \ ${bits_srcdir}/basic_string.tcc \ ${bits_srcdir}/boost_concept_check.h \ - ${bits_srcdir}/boost_sp_shared_count.h \ + ${bits_srcdir}/c++0x_warning.h \ ${bits_srcdir}/char_traits.h \ ${bits_srcdir}/codecvt.h \ ${bits_srcdir}/concept_check.h \ ${bits_srcdir}/cpp_type_traits.h \ ${bits_srcdir}/deque.tcc \ + ${bits_srcdir}/forward_list.h \ + ${bits_srcdir}/forward_list.tcc \ ${bits_srcdir}/fstream.tcc \ ${bits_srcdir}/functexcept.h \ ${bits_srcdir}/functional_hash.h \ ${bits_srcdir}/gslice.h \ ${bits_srcdir}/gslice_array.h \ ${bits_srcdir}/hashtable.h \ + ${bits_srcdir}/hashtable_policy.h \ ${bits_srcdir}/indirect_array.h \ ${bits_srcdir}/ios_base.h \ ${bits_srcdir}/istream.tcc \ @@ -102,11 +115,16 @@ bits_headers = \ ${bits_srcdir}/locale_facets_nonio.tcc \ ${bits_srcdir}/localefwd.h \ ${bits_srcdir}/mask_array.h \ + ${bits_srcdir}/move.h \ ${bits_srcdir}/ostream.tcc \ ${bits_srcdir}/ostream_insert.h \ ${bits_srcdir}/postypes.h \ + ${bits_srcdir}/random.h \ + ${bits_srcdir}/random.tcc \ ${bits_srcdir}/stream_iterator.h \ ${bits_srcdir}/streambuf_iterator.h \ + ${bits_srcdir}/shared_ptr.h \ + ${bits_srcdir}/shared_ptr_base.h \ ${bits_srcdir}/slice_array.h \ ${bits_srcdir}/sstream.tcc \ ${bits_srcdir}/stl_algo.h \ @@ -121,7 +139,6 @@ bits_headers = \ ${bits_srcdir}/stl_iterator_base_types.h \ ${bits_srcdir}/stl_list.h \ ${bits_srcdir}/stl_map.h \ - ${bits_srcdir}/stl_move.h \ ${bits_srcdir}/stl_multimap.h \ ${bits_srcdir}/stl_multiset.h \ ${bits_srcdir}/stl_numeric.h \ @@ -137,6 +154,9 @@ bits_headers = \ ${bits_srcdir}/stl_vector.h \ ${bits_srcdir}/streambuf.tcc \ ${bits_srcdir}/stringfwd.h \ + ${bits_srcdir}/unique_ptr.h \ + ${bits_srcdir}/unordered_map.h \ + ${bits_srcdir}/unordered_set.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ${bits_srcdir}/valarray_before.h \ @@ -153,7 +173,7 @@ backward_headers = \ ${backward_srcdir}/hash_set \ ${backward_srcdir}/hash_fun.h \ ${backward_srcdir}/hashtable.h \ - ${backward_srcdir}/strstream + ${backward_srcdir}/strstream pb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds pb_builddir = ./ext/pb_ds @@ -185,7 +205,7 @@ pb_subdirs = \ ${pb_builddir}/detail/list_update_policy # The ability for make and the underlying host to deal with this -# unweildy list as one entire entity is not a sure thing, and may +# unwieldy list as one entire entity is not a sure thing, and may # cause build errors. Thus, split one list into many smaller # mini-lists, with the maximum size per mini-list of no more than 42. @@ -230,7 +250,7 @@ pb_headers1 = \ ${pb_srcdir}/detail/binomial_heap_/debug_fn_imps.hpp \ ${pb_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \ ${pb_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \ - ${pb_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp + ${pb_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp pb_headers2 = \ ${pb_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \ @@ -272,7 +292,7 @@ pb_headers2 = \ ${pb_srcdir}/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/size_fn_imps.hpp \ - ${pb_srcdir}/detail/cc_hash_table_map_/standard_policies.hpp + ${pb_srcdir}/detail/cc_hash_table_map_/standard_policies.hpp pb_headers3 = \ ${pb_srcdir}/detail/cc_hash_table_map_/trace_fn_imps.hpp \ @@ -313,7 +333,7 @@ pb_headers3 = \ ${pb_srcdir}/detail/hash_fn/probe_fn_base.hpp \ ${pb_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \ ${pb_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \ - ${pb_srcdir}/detail/hash_fn/ranged_probe_fn.hpp + ${pb_srcdir}/detail/hash_fn/ranged_probe_fn.hpp pb_headers4 = \ ${pb_srcdir}/detail/hash_fn/sample_probe_fn.hpp \ @@ -356,7 +376,7 @@ pb_headers4 = \ ${pb_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/node_iterators.hpp \ - ${pb_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp + ${pb_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp pb_headers5 = \ ${pb_srcdir}/detail/ov_tree_map_/policy_access_fn_imps.hpp \ @@ -398,7 +418,7 @@ pb_headers5 = \ ${pb_srcdir}/detail/pat_trie_/update_fn_imps.hpp \ ${pb_srcdir}/detail/priority_queue_base_dispatch.hpp \ ${pb_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \ - ${pb_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp + ${pb_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp pb_headers6 = \ ${pb_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \ @@ -440,7 +460,7 @@ pb_headers6 = \ ${pb_srcdir}/detail/standard_policies.hpp \ ${pb_srcdir}/detail/thin_heap_/constructors_destructor_fn_imps.hpp \ ${pb_srcdir}/detail/thin_heap_/debug_fn_imps.hpp \ - ${pb_srcdir}/detail/thin_heap_/erase_fn_imps.hpp + ${pb_srcdir}/detail/thin_heap_/erase_fn_imps.hpp pb_headers7 = \ ${pb_srcdir}/detail/thin_heap_/find_fn_imps.hpp \ @@ -466,20 +486,22 @@ pb_headers7 = \ ${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/const_point_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/iterator.hpp \ - ${pb_srcdir}/detail/unordered_iterator/point_iterator.hpp + ${pb_srcdir}/detail/unordered_iterator/point_iterator.hpp ext_srcdir = ${glibcxx_srcdir}/include/ext -ext_builddir = ./ext +ext_builddir = ./ext ext_headers = \ ${ext_srcdir}/algorithm \ ${ext_srcdir}/atomicity.h \ ${ext_srcdir}/array_allocator.h \ ${ext_srcdir}/bitmap_allocator.h \ + ${ext_srcdir}/cast.h \ ${ext_srcdir}/codecvt_specializations.h \ ${ext_srcdir}/concurrence.h \ ${ext_srcdir}/debug_allocator.h \ ${ext_srcdir}/enc_filebuf.h \ + ${ext_srcdir}/extptr_allocator.h \ ${ext_srcdir}/stdio_filebuf.h \ ${ext_srcdir}/stdio_sync_filebuf.h \ ${ext_srcdir}/functional \ @@ -491,11 +513,13 @@ ext_headers = \ ${ext_srcdir}/numeric \ ${ext_srcdir}/numeric_traits.h \ ${ext_srcdir}/pod_char_traits.h \ + ${ext_srcdir}/pointer.h \ ${ext_srcdir}/pool_allocator.h \ ${ext_srcdir}/rb_tree \ ${ext_srcdir}/rope \ ${ext_srcdir}/ropeimpl.h \ ${ext_srcdir}/slist \ + ${ext_srcdir}/string_conversions.h \ ${ext_srcdir}/throw_allocator.h \ ${ext_srcdir}/typelist.h \ ${ext_srcdir}/type_traits.h \ @@ -517,7 +541,6 @@ tr1_headers = \ ${tr1_srcdir}/array \ ${tr1_srcdir}/bessel_function.tcc \ ${tr1_srcdir}/beta_function.tcc \ - ${tr1_srcdir}/boost_sp_shared_count.h \ ${tr1_srcdir}/ccomplex \ ${tr1_srcdir}/cctype \ ${tr1_srcdir}/cfenv \ @@ -546,6 +569,7 @@ tr1_headers = \ ${tr1_srcdir}/gamma.tcc \ ${tr1_srcdir}/hypergeometric.tcc \ ${tr1_srcdir}/hashtable.h \ + ${tr1_srcdir}/hashtable_policy.h \ ${tr1_srcdir}/inttypes.h \ ${tr1_srcdir}/limits.h \ ${tr1_srcdir}/math.h \ @@ -555,8 +579,11 @@ tr1_headers = \ ${tr1_srcdir}/poly_laguerre.tcc \ ${tr1_srcdir}/legendre_function.tcc \ ${tr1_srcdir}/random \ + ${tr1_srcdir}/random.h \ + ${tr1_srcdir}/random.tcc \ ${tr1_srcdir}/regex \ ${tr1_srcdir}/riemann_zeta.tcc \ + ${tr1_srcdir}/shared_ptr.h \ ${tr1_srcdir}/special_function_util.h \ ${tr1_srcdir}/stdarg.h \ ${tr1_srcdir}/stdbool.h \ @@ -566,8 +593,10 @@ tr1_headers = \ ${tr1_srcdir}/tgmath.h \ ${tr1_srcdir}/tuple \ ${tr1_srcdir}/type_traits \ - ${tr1_srcdir}/unordered_set \ ${tr1_srcdir}/unordered_map \ + ${tr1_srcdir}/unordered_map.h \ + ${tr1_srcdir}/unordered_set \ + ${tr1_srcdir}/unordered_set.h \ ${tr1_srcdir}/utility \ ${tr1_srcdir}/wchar.h \ ${tr1_srcdir}/wctype.h @@ -577,7 +606,6 @@ tr1_impl_srcdir = ${glibcxx_srcdir}/include/tr1_impl tr1_impl_builddir = ./tr1_impl tr1_impl_headers = \ ${tr1_impl_srcdir}/array \ - ${tr1_impl_srcdir}/boost_shared_ptr.h \ ${tr1_impl_srcdir}/boost_sp_counted_base.h \ ${tr1_impl_srcdir}/cctype \ ${tr1_impl_srcdir}/cfenv \ @@ -589,18 +617,15 @@ tr1_impl_headers = \ ${tr1_impl_srcdir}/cstdlib \ ${tr1_impl_srcdir}/cwchar \ ${tr1_impl_srcdir}/cwctype \ - ${tr1_impl_srcdir}/functional \ - ${tr1_impl_srcdir}/functional_hash.h \ - ${tr1_impl_srcdir}/hashtable \ - ${tr1_impl_srcdir}/hashtable_policy.h \ - ${tr1_impl_srcdir}/random \ - ${tr1_impl_srcdir}/random.tcc \ ${tr1_impl_srcdir}/regex \ ${tr1_impl_srcdir}/type_traits \ - ${tr1_impl_srcdir}/unordered_map \ - ${tr1_impl_srcdir}/unordered_set \ ${tr1_impl_srcdir}/utility +decimal_srcdir = ${glibcxx_srcdir}/include/decimal +decimal_builddir = ./decimal +decimal_headers = \ + ${decimal_srcdir}/decimal \ + ${decimal_srcdir}/decimal.h # This is the common subset of C++ files that all three "C" header models use. c_base_srcdir = $(C_INCLUDE_DIR) @@ -636,14 +661,15 @@ c_compatibility_srcdir = ${glibcxx_srcdir}/include/c_compatibility c_compatibility_builddir = . if GLIBCXX_C_HEADERS_C_STD -c_compatibility_headers = +c_compatibility_headers = endif if GLIBCXX_C_HEADERS_C_GLOBAL c_compatibility_headers = \ ${c_compatibility_srcdir}/complex.h \ ${c_compatibility_srcdir}/fenv.h \ - ${c_compatibility_srcdir}/tgmath.h + ${c_compatibility_srcdir}/tgmath.h \ + ${c_compatibility_srcdir}/stdatomic.h endif if GLIBCXX_C_HEADERS_C @@ -689,7 +715,6 @@ debug_headers = \ ${debug_srcdir}/map.h \ ${debug_srcdir}/multimap.h \ ${debug_srcdir}/multiset.h \ - ${debug_srcdir}/safe_association.h \ ${debug_srcdir}/safe_base.h \ ${debug_srcdir}/safe_iterator.h \ ${debug_srcdir}/safe_iterator.tcc \ @@ -704,10 +729,10 @@ debug_headers = \ # Parallel mode headers parallel_srcdir = ${glibcxx_srcdir}/include/parallel parallel_builddir = ./parallel +if ENABLE_PARALLEL parallel_headers = \ - ${parallel_srcdir}/algorithm \ - ${parallel_srcdir}/algobase.h \ ${parallel_srcdir}/algo.h \ + ${parallel_srcdir}/algobase.h \ ${parallel_srcdir}/algorithm \ ${parallel_srcdir}/algorithmfwd.h \ ${parallel_srcdir}/balanced_quicksort.h \ @@ -733,8 +758,8 @@ parallel_headers = \ ${parallel_srcdir}/numericfwd.h \ ${parallel_srcdir}/omp_loop.h \ ${parallel_srcdir}/omp_loop_static.h \ - ${parallel_srcdir}/parallel.h \ ${parallel_srcdir}/par_loop.h \ + ${parallel_srcdir}/parallel.h \ ${parallel_srcdir}/partial_sum.h \ ${parallel_srcdir}/partition.h \ ${parallel_srcdir}/queue.h \ @@ -748,8 +773,44 @@ parallel_headers = \ ${parallel_srcdir}/tags.h \ ${parallel_srcdir}/types.h \ ${parallel_srcdir}/unique_copy.h \ - ${parallel_srcdir}/workstealing.h + ${parallel_srcdir}/workstealing.h +else +parallel_headers = +endif +# Profile mode headers +profile_srcdir = ${glibcxx_srcdir}/include/profile +profile_builddir = ./profile +profile_headers = \ + ${profile_srcdir}/base.h \ + ${profile_srcdir}/unordered_map \ + ${profile_srcdir}/unordered_set \ + ${profile_srcdir}/vector \ + ${profile_srcdir}/bitset \ + ${profile_srcdir}/deque \ + ${profile_srcdir}/list \ + ${profile_srcdir}/map \ + ${profile_srcdir}/map.h \ + ${profile_srcdir}/multimap.h \ + ${profile_srcdir}/multiset.h \ + ${profile_srcdir}/set \ + ${profile_srcdir}/set.h \ + ${profile_srcdir}/iterator_tracker.h +profile_impl_srcdir = ${glibcxx_srcdir}/include/profile/impl +profile_impl_builddir = ./profile/impl +profile_impl_headers = \ + ${profile_impl_srcdir}/profiler.h \ + ${profile_impl_srcdir}/profiler_container_size.h \ + ${profile_impl_srcdir}/profiler_hash_func.h \ + ${profile_impl_srcdir}/profiler_hashtable_size.h \ + ${profile_impl_srcdir}/profiler_map_to_unordered_map.h \ + ${profile_impl_srcdir}/profiler_node.h \ + ${profile_impl_srcdir}/profiler_state.h \ + ${profile_impl_srcdir}/profiler_trace.h \ + ${profile_impl_srcdir}/profiler_vector_size.h \ + ${profile_impl_srcdir}/profiler_vector_to_list.h \ + ${profile_impl_srcdir}/profiler_list_to_vector.h \ + ${profile_impl_srcdir}/profiler_list_to_slist.h # Some of the different "C" header models need extra files. # Some "C" header schemes require the "C" compatibility headers. @@ -780,7 +841,7 @@ host_headers = \ ${glibcxx_srcdir}/$(ERROR_CONSTANTS_SRCDIR)/error_constants.h \ ${glibcxx_srcdir}/include/precompiled/stdc++.h \ ${glibcxx_srcdir}/include/precompiled/stdtr1c++.h \ - ${glibcxx_srcdir}/include/precompiled/extc++.h + ${glibcxx_srcdir}/include/precompiled/extc++.h # Non-installed host_header files. COMPATIBILITY_H = config/abi/compatibility.h @@ -796,7 +857,7 @@ host_headers_extra = \ ${host_builddir}/c++io.h \ ${host_builddir}/c++locale.h \ ${host_builddir}/messages_members.h \ - ${host_builddir}/time_members.h + ${host_builddir}/time_members.h thread_host_headers = \ ${host_builddir}/gthr.h \ @@ -810,7 +871,7 @@ pch1_source = ${glibcxx_srcdir}/include/precompiled/stdc++.h pch1_output_builddir = ${host_builddir}/stdc++.h.gch pch1_output_anchor = ${host_builddir}/stdc++.h pch1_output_installdir = ${host_installdir}/stdc++.h.gch -pch1a_output = ${pch1_output_builddir}/O0g.gch +pch1a_output = ${pch1_output_builddir}/O2ggnu++0x.gch pch1b_output = ${pch1_output_builddir}/O2g.gch pch1_output = ${pch1a_output} ${pch1b_output} @@ -832,7 +893,7 @@ pch_output_dirs = \ ${pch1_output_builddir} ${pch2_output_builddir} ${pch3_output_builddir} pch_output_anchors = \ ${pch1_output_anchor} ${pch2_output_anchor} ${pch3_output_anchor} -PCHFLAGS=-Winvalid-pch -x c++-header $(CXXFLAGS) +PCHFLAGS=-x c++-header $(CXXFLAGS) if GLIBCXX_BUILD_PCH pch_build = ${pch_output} else @@ -844,7 +905,8 @@ endif allstamped = \ stamp-std stamp-bits stamp-c_base stamp-c_base_extra \ stamp-c_compatibility stamp-backward stamp-ext stamp-pb \ - stamp-tr1 stamp-tr1-impl stamp-debug stamp-parallel stamp-host + stamp-tr1 stamp-tr1-impl stamp-decimal stamp-debug \ + stamp-parallel stamp-profile stamp-profile-impl stamp-host # List of all files that are created by explicit building, editing, or # catenation. @@ -856,72 +918,46 @@ allcreated = \ # Here are the rules for building the headers all-local: ${allstamped} ${allcreated} -# This rule is slightly different, in that we must change the name of the -# local file from std_foo.h to foo. +# Ignore errors from 'mkdir -p' to avoid parallel make failure on +# systems with broken mkdir. Call mkdir unconditionally because +# it is just as cheap to avoid going through the shell. +# Ignore errors from $(LN_S) because the links may already exist. stamp-std: ${std_headers} - @if [ ! -d "${std_builddir}" ]; then \ - mkdir -p ${std_builddir} ;\ - fi ;\ - if [ ! -f stamp-std ]; then \ - (cd ${std_builddir} && $(LN_S) $? . || true) ;\ - fi ;\ - $(STAMP) stamp-std + @-mkdir -p ${std_builddir} + @-cd ${std_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-std stamp-bits: ${bits_headers} - @if [ ! -d "${bits_builddir}" ]; then \ - mkdir -p ${bits_builddir} ;\ - fi ;\ - if [ ! -f stamp-bits ]; then \ - (cd ${bits_builddir} && $(LN_S) $? . || true) ;\ - fi ;\ - $(STAMP) stamp-bits - -stamp-c_base: ${c_base_headers} - @if [ ! -d "${c_base_builddir}" ]; then \ - mkdir -p ${c_base_builddir} ;\ - fi ;\ - if [ ! -f stamp-c_base ]; then \ - (cd ${c_base_builddir} && $(LN_S) $? . || true) ;\ - fi ;\ - $(STAMP) stamp-c_base + @-mkdir -p ${bits_builddir} + @-cd ${bits_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-bits + +stamp-c_base: ${c_base_headers} + @-mkdir -p ${c_base_builddir} + @-cd ${c_base_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-c_base stamp-c_base_extra: ${c_base_headers_extra} - @if [ ! -d "${bits_builddir}" ]; then \ - mkdir -p ${bits_builddir} ;\ - fi ;\ - if [ ! -f stamp-c_base_extra ]; then \ - (cd ${bits_builddir} && $(LN_S) $? . || true) ;\ - fi ;\ - $(STAMP) stamp-c_base_extra + @-mkdir -p ${bits_builddir} + @-cd ${bits_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-c_base_extra stamp-c_compatibility: ${c_compatibility_headers_extra} - @if [ ! -d "${c_compatibility_builddir}" ]; then \ - mkdir -p ${c_compatibility_builddir} ;\ - fi ;\ - if [ ! -f stamp-c_compatibility ]; then \ - if [ ! -z "${c_compatibility_headers_extra}" ]; then \ - (cd ${c_compatibility_builddir} && $(LN_S) $? . || true) ;\ - fi ;\ - fi ;\ - $(STAMP) stamp-c_compatibility + @-mkdir -p ${c_compatibility_builddir} + @-if [ ! -z "${c_compatibility_headers_extra}" ]; then \ + cd ${c_compatibility_builddir} && $(LN_S) $? . 2>/dev/null ;\ + fi + @$(STAMP) stamp-c_compatibility stamp-backward: ${backward_headers} - @if [ ! -d "${backward_builddir}" ]; then \ - mkdir -p ${backward_builddir} ;\ - fi ;\ - if [ ! -f stamp-backward ]; then \ - (cd ${backward_builddir} && $(LN_S) $? . || true) ;\ - fi ;\ - $(STAMP) stamp-backward + @-mkdir -p ${backward_builddir} + @-cd ${backward_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-backward stamp-ext: ${ext_headers} - @if [ ! -d "${ext_builddir}" ]; then \ - mkdir -p ${ext_builddir} ;\ - fi ;\ - if [ ! -f stamp-ext ]; then \ - (cd ${ext_builddir} && $(LN_S) $? . || true) ;\ - fi ;\ - $(STAMP) stamp-ext + @-mkdir -p ${ext_builddir} + @-cd ${ext_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-ext # Have to deal with nested include directories, gah! Strip off source # directory before making the link. @@ -929,7 +965,7 @@ stamp-ext: ${ext_headers} stamp-pb: @if [ ! -d "${pb_builddir}" ]; then \ mkdir -p ${pb_subdirs} ;\ - fi + fi @if [ ! -f stamp-pb ]; then \ cd ${pb_builddir} && for h in ${pb_headers1}; do \ build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\ @@ -975,52 +1011,48 @@ stamp-pb: $(STAMP) stamp-pb stamp-tr1: ${tr1_headers} - @if [ ! -d "${tr1_builddir}" ]; then \ - mkdir -p ${tr1_builddir} ;\ - fi ;\ - if [ ! -f stamp-tr1 ]; then \ - (cd ${tr1_builddir} && $(LN_S) $? . || true) ;\ - fi ;\ - $(STAMP) stamp-tr1 + @-mkdir -p ${tr1_builddir} + @-cd ${tr1_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-tr1 stamp-tr1-impl: ${tr1_impl_headers} - @if [ ! -d "${tr1_impl_builddir}" ]; then \ - mkdir -p ${tr1_impl_builddir} ;\ - fi ;\ - if [ ! -f stamp-tr1-impl ]; then \ - (cd ${tr1_impl_builddir} && $(LN_S) $? . || true) ;\ - fi ;\ - $(STAMP) stamp-tr1-impl + @-mkdir -p ${tr1_impl_builddir} + @-cd ${tr1_impl_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-tr1-impl + +stamp-decimal: ${decimal_headers} + @-mkdir -p ${decimal_builddir} + @-cd ${decimal_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-decimal stamp-debug: ${debug_headers} - @if [ ! -d "${debug_builddir}" ]; then \ - mkdir -p ${debug_builddir} ;\ - fi ;\ - if [ ! -f stamp-debug ]; then \ - (cd ${debug_builddir} && @LN_S@ $? . || true) ;\ - fi ;\ - $(STAMP) stamp-debug + @-mkdir -p ${debug_builddir} + @-cd ${debug_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-debug stamp-parallel: ${parallel_headers} - @if [ ! -d "${parallel_builddir}" ]; then \ - mkdir -p ${parallel_builddir} ;\ - fi ;\ - if [ ! -f stamp-parallel ]; then \ - (cd ${parallel_builddir} && @LN_S@ $? . || true) ;\ - fi ;\ - $(STAMP) stamp-parallel + @-mkdir -p ${parallel_builddir} + @-cd ${parallel_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-parallel + +stamp-profile: ${profile_headers} + @-mkdir -p ${profile_builddir} + @-cd ${profile_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-profile + +stamp-profile-impl: ${profile_impl_headers} + @-mkdir -p ${profile_impl_builddir} + @-cd ${profile_impl_builddir} && $(LN_S) $? . 2>/dev/null + @$(STAMP) stamp-profile-impl stamp-${host_alias}: - @if [ ! -d ${host_builddir} ]; then \ - mkdir -p ${host_builddir} ;\ - fi ;\ - $(STAMP) stamp-${host_alias} + @-mkdir -p ${host_builddir} + @$(STAMP) stamp-${host_alias} # Host includes static. # XXX Missing dependency info for {host_headers_extra} stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias} - @if [ ! -f stamp-host ]; then \ - (cd ${host_builddir} ;\ + @cd ${host_builddir} && {\ $(LN_S) ${host_headers} . || true ;\ $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_H) basic_file.h || true ;\ $(LN_S) ${glibcxx_srcdir}/$(ALLOCATOR_H) c++allocator.h || true ;\ @@ -1029,8 +1061,8 @@ stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias} $(LN_S) ${glibcxx_srcdir}/$(CLOCALE_INTERNAL_H) . || true ;\ $(LN_S) ${glibcxx_srcdir}/$(COMPATIBILITY_H) . || true ;\ $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_H) messages_members.h || true ;\ - $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true);\ - fi ;\ + $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true;\ + } 2>/dev/null $(STAMP) stamp-host # Host includes dynamic. @@ -1123,34 +1155,23 @@ ${host_builddir}/gthr-default.h: ${toplevel_srcdir}/gcc/${glibcxx_thread_h} \ # Build two precompiled C++ includes, stdc++.h.gch/*.gch ${pch1a_output}: ${allstamped} ${host_builddir}/c++config.h ${pch1_source} - if [ ! -d "${pch1_output_builddir}" ]; then \ - mkdir -p ${pch1_output_builddir}; \ - fi; \ - $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O0 -g ${pch1_source} -o $@ - touch ${pch1_output_anchor} + -mkdir -p ${pch1_output_builddir} + $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g -std=gnu++0x ${pch1_source} \ + -o $@ ${pch1b_output}: ${allstamped} ${host_builddir}/c++config.h ${pch1_source} - if [ ! -d "${pch1_output_builddir}" ]; then \ - mkdir -p ${pch1_output_builddir}; \ - fi; \ + -mkdir -p ${pch1_output_builddir} $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch1_source} -o $@ - touch ${pch1_output_anchor} # Build a precompiled TR1 include, stdtr1c++.h.gch/O2.gch ${pch2_output}: ${pch2_source} ${pch1_output} - if [ ! -d "${pch2_output_builddir}" ]; then \ - mkdir -p ${pch2_output_builddir}; \ - fi; \ + -mkdir -p ${pch2_output_builddir} $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch2_source} -o $@ - touch ${pch2_output_anchor} # Build a precompiled extension include, extc++.h.gch/O2.gch ${pch3_output}: ${pch3_source} ${pch2_output} - if [ ! -d "${pch3_output_builddir}" ]; then \ - mkdir -p ${pch3_output_builddir}; \ - fi; \ + -mkdir -p ${pch3_output_builddir} $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch3_source} -o $@ - touch ${pch3_output_anchor} # For robustness sake (in light of junk files or in-source # configuration), copy from the build or source tree to the install @@ -1162,7 +1183,7 @@ ${pch3_output}: ${pch3_source} ${pch2_output} # the rest are taken from the original source tree. if GLIBCXX_HOSTED -install-data-local: install-headers +install-data-local: install-headers else install-data-local: install-freestanding-headers endif @@ -1232,6 +1253,9 @@ install-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${tr1_impl_builddir} for file in ${tr1_impl_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${tr1_impl_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${decimal_builddir} + for file in ${decimal_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${decimal_builddir}; done $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} for file in ${c_base_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done @@ -1247,16 +1271,24 @@ install-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${debug_builddir} for file in ${debug_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${debug_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${parallel_builddir} - for file in ${parallel_headers}; do \ + parallel_headers_install='${parallel_headers}';\ + test -z "$$parallel_headers_install" || \ + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${parallel_builddir};\ + for file in $$parallel_headers_install; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${parallel_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${profile_builddir} + for file in ${profile_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${profile_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${profile_impl_builddir} + for file in ${profile_impl_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${profile_impl_builddir}; done $(mkinstalldirs) $(DESTDIR)${host_installdir} for file in ${host_headers} ${host_headers_extra} \ ${thread_host_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done # By adding these files here, automake will remove them for 'make clean' -CLEANFILES = ${pch_output} ${pch_output_anchors} +CLEANFILES = ${pch_output} ${pch_output_anchors} stamp-host # To remove directories. clean-local: @@ -1268,9 +1300,10 @@ clean-local: # directory. (This is more of an example of how this kind of rule can # be made.) .PRECIOUS: $(std_headers) $(c_base_headers) $(tr1_headers) $(tr1_impl_headers) - $(ext_headers) + $(decimal_headers) $(ext_headers) $(std_headers): ; @: $(c_base_headers): ; @: $(tr1_headers): ; @: $(tr1_impl_headers): ; @: +$(decimal_headers): ; @: $(ext_headers): ; @: