Implement std::experimental::shared_ptr with array support
[gcc.git] / libstdc++-v3 / include / Makefile.in
index 30d90968a817e1d320f1b326c3f45673d9016e55..89dfdbe5278754a5e6d33c994a3f9e224d4a4775 100644 (file)
@@ -197,6 +197,9 @@ SYMVER_FILE = @SYMVER_FILE@
 TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
+VTV_CXXFLAGS = @VTV_CXXFLAGS@
+VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
+VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
 WARN_FLAGS = @WARN_FLAGS@
 WERROR = @WERROR@
 XMLLINT = @XMLLINT@
@@ -235,6 +238,7 @@ glibcxx_POFILES = @glibcxx_POFILES@
 glibcxx_builddir = @glibcxx_builddir@
 glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
 glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
+glibcxx_cxx98_abi = @glibcxx_cxx98_abi@
 glibcxx_localedir = @glibcxx_localedir@
 glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
 glibcxx_prefixdir = @glibcxx_prefixdir@
@@ -293,6 +297,8 @@ toolexecdir = $(glibcxx_toolexecdir)
 toolexeclibdir = $(glibcxx_toolexeclibdir)
 @ENABLE_WERROR_FALSE@WERROR_FLAG = 
 @ENABLE_WERROR_TRUE@WERROR_FLAG = $(WERROR)
+@ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = 
+@ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates
 
 # These bits are all figured out from configure.  Look in acinclude.m4
 # or configure.ac to see how they are set.  See GLIBCXX_EXPORT_FLAGS.
@@ -304,7 +310,7 @@ WARN_CXXFLAGS = \
 
 
 # -I/-D flags to pass when compiling.
-AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
 
 # Standard C++ includes.
 std_srcdir = ${glibcxx_srcdir}/include/std
@@ -315,6 +321,7 @@ std_headers = \
        ${std_srcdir}/atomic \
        ${std_srcdir}/bitset \
        ${std_srcdir}/chrono \
+       ${std_srcdir}/codecvt \
        ${std_srcdir}/complex \
        ${std_srcdir}/condition_variable \
        ${std_srcdir}/deque \
@@ -342,6 +349,7 @@ std_headers = \
        ${std_srcdir}/regex \
        ${std_srcdir}/scoped_allocator \
        ${std_srcdir}/set \
+       ${std_srcdir}/shared_mutex \
        ${std_srcdir}/sstream \
        ${std_srcdir}/stack \
        ${std_srcdir}/stdexcept \
@@ -363,19 +371,23 @@ bits_builddir = ./bits
 bits_headers = \
        ${bits_srcdir}/algorithmfwd.h \
        ${bits_srcdir}/alloc_traits.h \
+       ${bits_srcdir}/allocated_ptr.h \
        ${bits_srcdir}/allocator.h \
        ${bits_srcdir}/atomic_base.h \
+       ${bits_srcdir}/atomic_futex.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}/c++0x_warning.h \
+       ${bits_srcdir}/c++14_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}/enable_special_members.h \
        ${bits_srcdir}/forward_list.h \
        ${bits_srcdir}/forward_list.tcc \
        ${bits_srcdir}/fstream.tcc \
@@ -391,32 +403,42 @@ bits_headers = \
        ${bits_srcdir}/list.tcc \
        ${bits_srcdir}/locale_classes.h \
        ${bits_srcdir}/locale_classes.tcc \
+       ${bits_srcdir}/locale_conv.h \
        ${bits_srcdir}/locale_facets.h \
        ${bits_srcdir}/locale_facets.tcc \
        ${bits_srcdir}/locale_facets_nonio.h \
        ${bits_srcdir}/locale_facets_nonio.tcc \
        ${bits_srcdir}/localefwd.h \
        ${bits_srcdir}/mask_array.h \
+       ${bits_srcdir}/memoryfwd.h \
        ${bits_srcdir}/move.h \
+       ${bits_srcdir}/mutex.h \
        ${bits_srcdir}/ostream.tcc \
        ${bits_srcdir}/ostream_insert.h \
+       ${bits_srcdir}/parse_numbers.h \
        ${bits_srcdir}/postypes.h \
+       ${bits_srcdir}/predefined_ops.h \
        ${bits_srcdir}/ptr_traits.h \
+       ${bits_srcdir}/quoted_string.h \
        ${bits_srcdir}/random.h \
        ${bits_srcdir}/random.tcc \
        ${bits_srcdir}/range_access.h \
        ${bits_srcdir}/regex.h \
-       ${bits_srcdir}/regex_compiler.h \
+       ${bits_srcdir}/regex.tcc \
        ${bits_srcdir}/regex_constants.h \
-       ${bits_srcdir}/regex_cursor.h \
        ${bits_srcdir}/regex_error.h \
-       ${bits_srcdir}/regex_grep_matcher.h \
-       ${bits_srcdir}/regex_grep_matcher.tcc \
-       ${bits_srcdir}/regex_nfa.h \
-       ${bits_srcdir}/regex_nfa.tcc \
+       ${bits_srcdir}/regex_scanner.h \
+       ${bits_srcdir}/regex_scanner.tcc \
+       ${bits_srcdir}/regex_automaton.h \
+       ${bits_srcdir}/regex_automaton.tcc \
+       ${bits_srcdir}/regex_compiler.h \
+       ${bits_srcdir}/regex_compiler.tcc \
+       ${bits_srcdir}/regex_executor.h \
+       ${bits_srcdir}/regex_executor.tcc \
        ${bits_srcdir}/stream_iterator.h \
        ${bits_srcdir}/streambuf_iterator.h \
        ${bits_srcdir}/shared_ptr.h \
+       ${bits_srcdir}/shared_ptr_atomic.h \
        ${bits_srcdir}/shared_ptr_base.h \
        ${bits_srcdir}/slice_array.h \
        ${bits_srcdir}/sstream.tcc \
@@ -455,8 +477,7 @@ bits_headers = \
        ${bits_srcdir}/valarray_array.tcc \
        ${bits_srcdir}/valarray_before.h \
        ${bits_srcdir}/valarray_after.h \
-       ${bits_srcdir}/vector.tcc \
-       ${bits_host_headers}
+       ${bits_srcdir}/vector.tcc
 
 bits_host_headers = \
        ${glibcxx_srcdir}/${CPU_OPT_BITS_RANDOM}
@@ -776,6 +797,7 @@ ext_srcdir = ${glibcxx_srcdir}/include/ext
 ext_builddir = ./ext
 ext_headers = \
        ${ext_srcdir}/algorithm \
+       ${ext_srcdir}/aligned_buffer.h \
        ${ext_srcdir}/alloc_traits.h \
        ${ext_srcdir}/atomicity.h \
        ${ext_srcdir}/array_allocator.h \
@@ -816,8 +838,7 @@ ext_headers = \
        ${ext_srcdir}/vstring.tcc \
        ${ext_srcdir}/vstring_fwd.h \
        ${ext_srcdir}/vstring_util.h \
-       ${ext_compat_headers} \
-       ${ext_host_headers}
+       ${ext_compat_headers}
 
 ext_compat_headers = \
        ${backward_srcdir}/hash_set \
@@ -898,6 +919,7 @@ tr2_headers = \
        ${tr2_srcdir}/bool_set \
        ${tr2_srcdir}/bool_set.tcc \
        ${tr2_srcdir}/dynamic_bitset \
+       ${tr2_srcdir}/dynamic_bitset.tcc \
        ${tr2_srcdir}/ratio \
        ${tr2_srcdir}/type_traits
 
@@ -908,6 +930,59 @@ decimal_headers = \
        ${decimal_srcdir}/decimal.h
 
 
+# Post-C++11 TS's
+experimental_srcdir = ${glibcxx_srcdir}/include/experimental
+experimental_builddir = ./experimental
+experimental_headers = \
+       ${experimental_srcdir}/algorithm \
+       ${experimental_srcdir}/any \
+       ${experimental_srcdir}/array \
+       ${experimental_srcdir}/chrono \
+       ${experimental_srcdir}/deque \
+       ${experimental_srcdir}/forward_list \
+       ${experimental_srcdir}/functional \
+       ${experimental_srcdir}/iterator \
+       ${experimental_srcdir}/list \
+       ${experimental_srcdir}/map \
+       ${experimental_srcdir}/memory \
+       ${experimental_srcdir}/memory_resource \
+       ${experimental_srcdir}/numeric \
+       ${experimental_srcdir}/optional \
+       ${experimental_srcdir}/propagate_const \
+       ${experimental_srcdir}/ratio \
+       ${experimental_srcdir}/regex \
+       ${experimental_srcdir}/set \
+       ${experimental_srcdir}/string \
+       ${experimental_srcdir}/string_view \
+       ${experimental_srcdir}/system_error \
+       ${experimental_srcdir}/tuple \
+       ${experimental_srcdir}/type_traits \
+       ${experimental_srcdir}/unordered_map \
+       ${experimental_srcdir}/unordered_set \
+       ${experimental_srcdir}/utility \
+       ${experimental_srcdir}/vector \
+       ${experimental_filesystem_headers}
+
+experimental_bits_srcdir = ${glibcxx_srcdir}/include/experimental/bits
+experimental_bits_builddir = ./experimental/bits
+experimental_bits_headers = \
+       ${experimental_bits_srcdir}/erase_if.h \
+       ${experimental_bits_srcdir}/shared_ptr.h \
+       ${experimental_bits_srcdir}/string_view.tcc \
+       ${experimental_bits_filesystem_headers}
+
+@ENABLE_FILESYSTEM_TS_FALSE@experimental_filesystem_headers = 
+@ENABLE_FILESYSTEM_TS_TRUE@experimental_filesystem_headers = \
+@ENABLE_FILESYSTEM_TS_TRUE@    ${experimental_srcdir}/filesystem
+
+@ENABLE_FILESYSTEM_TS_FALSE@experimental_bits_filesystem_headers = 
+@ENABLE_FILESYSTEM_TS_TRUE@experimental_bits_filesystem_headers = \
+@ENABLE_FILESYSTEM_TS_TRUE@    ${experimental_bits_srcdir}/fs_dir.h \
+@ENABLE_FILESYSTEM_TS_TRUE@    ${experimental_bits_srcdir}/fs_fwd.h \
+@ENABLE_FILESYSTEM_TS_TRUE@    ${experimental_bits_srcdir}/fs_ops.h \
+@ENABLE_FILESYSTEM_TS_TRUE@    ${experimental_bits_srcdir}/fs_path.h
+
+
 # This is the common subset of C++ files that all three "C" header models use.
 c_base_srcdir = $(C_INCLUDE_DIR)
 c_base_builddir = .
@@ -935,6 +1010,7 @@ c_base_headers = \
        ${c_base_srcdir}/cstring \
        ${c_base_srcdir}/ctgmath \
        ${c_base_srcdir}/ctime \
+       ${c_base_srcdir}/cuchar \
        ${c_base_srcdir}/cwchar \
        ${c_base_srcdir}/cwctype
 
@@ -971,6 +1047,7 @@ c_compatibility_builddir = .
 @GLIBCXX_C_HEADERS_C_TRUE@     ${c_compatibility_srcdir}/string.h \
 @GLIBCXX_C_HEADERS_C_TRUE@     ${c_compatibility_srcdir}/tgmath.h \
 @GLIBCXX_C_HEADERS_C_TRUE@     ${c_compatibility_srcdir}/time.h \
+@GLIBCXX_C_HEADERS_C_TRUE@     ${c_compatibility_srcdir}/uchar.h \
 @GLIBCXX_C_HEADERS_C_TRUE@     ${c_compatibility_srcdir}/wchar.h \
 @GLIBCXX_C_HEADERS_C_TRUE@     ${c_compatibility_srcdir}/wctype.h
 
@@ -980,12 +1057,14 @@ debug_srcdir = ${glibcxx_srcdir}/include/debug
 debug_builddir = ./debug
 debug_headers = \
        ${debug_srcdir}/array \
+       ${debug_srcdir}/assertions.h \
        ${debug_srcdir}/bitset \
        ${debug_srcdir}/debug.h \
        ${debug_srcdir}/deque \
        ${debug_srcdir}/formatter.h \
        ${debug_srcdir}/forward_list \
        ${debug_srcdir}/functions.h \
+       ${debug_srcdir}/helper_functions.h \
        ${debug_srcdir}/list \
        ${debug_srcdir}/map \
        ${debug_srcdir}/macros.h \
@@ -993,6 +1072,7 @@ debug_headers = \
        ${debug_srcdir}/multimap.h \
        ${debug_srcdir}/multiset.h \
        ${debug_srcdir}/safe_base.h \
+       ${debug_srcdir}/safe_container.h \
        ${debug_srcdir}/safe_iterator.h \
        ${debug_srcdir}/safe_iterator.tcc \
        ${debug_srcdir}/safe_local_iterator.h \
@@ -1004,6 +1084,7 @@ debug_headers = \
        ${debug_srcdir}/safe_unordered_container.tcc \
        ${debug_srcdir}/set \
        ${debug_srcdir}/set.h \
+       ${debug_srcdir}/stl_iterator.h \
        ${debug_srcdir}/string \
        ${debug_srcdir}/unordered_map \
        ${debug_srcdir}/unordered_set \
@@ -1065,6 +1146,7 @@ profile_builddir = ./profile
 profile_headers = \
        ${profile_srcdir}/array \
        ${profile_srcdir}/base.h \
+       ${profile_srcdir}/unordered_base.h \
        ${profile_srcdir}/unordered_map \
        ${profile_srcdir}/unordered_set \
        ${profile_srcdir}/vector \
@@ -1076,6 +1158,7 @@ profile_headers = \
        ${profile_srcdir}/map.h \
        ${profile_srcdir}/multimap.h \
        ${profile_srcdir}/multiset.h \
+       ${profile_srcdir}/ordered_base.h \
        ${profile_srcdir}/set \
        ${profile_srcdir}/set.h \
        ${profile_srcdir}/iterator_tracker.h
@@ -1165,7 +1248,7 @@ pch_output_dirs = \
 pch_output_anchors = \
        ${pch1_output_anchor} ${pch2_output_anchor} ${pch3_output_anchor}
 
-PCHFLAGS = -x c++-header -nostdinc++ $(CXXFLAGS)
+PCHFLAGS = -x c++-header -nostdinc++ $(CXXFLAGS) $(VTV_PCH_CXXFLAGS)
 @GLIBCXX_BUILD_PCH_FALSE@pch_build = 
 @GLIBCXX_BUILD_PCH_TRUE@pch_build = ${pch_output}
 
@@ -1174,8 +1257,8 @@ PCHFLAGS = -x c++-header -nostdinc++ $(CXXFLAGS)
 allstamped = \
        stamp-std stamp-bits stamp-bits-sup stamp-c_base stamp-c_compatibility \
        stamp-backward stamp-ext stamp-pb stamp-tr1 stamp-tr2 stamp-decimal \
-       stamp-debug stamp-parallel stamp-profile stamp-profile-impl \
-       stamp-host
+       stamp-experimental stamp-experimental-bits stamp-debug stamp-parallel \
+       stamp-profile stamp-profile-impl stamp-host
 
 
 # List of all files that are created by explicit building, editing, or
@@ -1466,6 +1549,16 @@ stamp-decimal: ${decimal_headers}
        @-cd ${decimal_builddir} && $(LN_S) $? . 2>/dev/null
        @$(STAMP) stamp-decimal
 
+stamp-experimental: ${experimental_headers}
+       @-mkdir -p ${experimental_builddir}
+       @-cd ${experimental_builddir} && $(LN_S) $? . 2>/dev/null
+       @$(STAMP) stamp-experimental
+
+stamp-experimental-bits: ${experimental_bits_headers}
+       @-mkdir -p ${experimental_bits_builddir}
+       @-cd ${experimental_bits_builddir} && $(LN_S) $? . 2>/dev/null
+       @$(STAMP) stamp-experimental-bits
+
 stamp-debug: ${debug_headers}
        @-mkdir -p ${debug_builddir}
        @-cd ${debug_builddir} && $(LN_S) $? . 2>/dev/null
@@ -1488,13 +1581,14 @@ stamp-profile-impl: ${profile_impl_headers}
 
 stamp-${host_alias}:
        @-mkdir -p ${host_builddir}
+       @-mkdir -p ${host_builddir}/../ext
        @$(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}
+stamp-host: ${host_headers} ${bits_host_headers} ${ext_host_headers} ${host_headers_noinst} stamp-${host_alias}
        @cd ${host_builddir} && {\
-         $(LN_S) ${host_headers} . || true ;\
+         $(LN_S) ${host_headers} ${bits_host_headers} . || true ;\
          $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_H) basic_file.h || true ;\
          $(LN_S) ${glibcxx_srcdir}/$(ALLOCATOR_H) c++allocator.h || true ;\
          $(LN_S) ${glibcxx_srcdir}/$(CSTDIO_H) c++io.h || true ;\
@@ -1504,6 +1598,9 @@ stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
          $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_H) messages_members.h || true ;\
          $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true;\
        } 2>/dev/null
+       @cd ${host_builddir}/../ext && {\
+         $(LN_S) ${ext_host_headers} . || true ;\
+       } 2>/dev/null
        $(STAMP) stamp-host
 
 # Host includes dynamic.
@@ -1522,6 +1619,16 @@ stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
 @ENABLE_VISIBILITY_FALSE@stamp-visibility:
 @ENABLE_VISIBILITY_FALSE@      echo 0 > stamp-visibility
 
+@ENABLE_DUAL_ABI_TRUE@stamp-dual-abi:
+@ENABLE_DUAL_ABI_TRUE@ echo 1 > stamp-dual-abi
+@ENABLE_DUAL_ABI_FALSE@stamp-dual-abi:
+@ENABLE_DUAL_ABI_FALSE@        echo 0 > stamp-dual-abi
+
+@ENABLE_CXX11_ABI_TRUE@stamp-cxx11-abi:
+@ENABLE_CXX11_ABI_TRUE@        echo 1 > stamp-cxx11-abi
+@ENABLE_CXX11_ABI_FALSE@stamp-cxx11-abi:
+@ENABLE_CXX11_ABI_FALSE@       echo 0 > stamp-cxx11-abi
+
 # NB: The non-empty default ldbl_compat works around an AIX sed
 # oddity, see libstdc++/31957 for details.
 ${host_builddir}/c++config.h: ${CONFIG_HEADER} \
@@ -1530,11 +1637,15 @@ ${host_builddir}/c++config.h: ${CONFIG_HEADER} \
                              ${toplevel_srcdir}/gcc/DATESTAMP \
                              stamp-namespace-version \
                              stamp-visibility \
-                             stamp-extern-template
+                             stamp-extern-template \
+                             stamp-dual-abi \
+                             stamp-cxx11-abi
        @date=`cat ${toplevel_srcdir}/gcc/DATESTAMP` ;\
        ns_version=`cat stamp-namespace-version` ;\
        visibility=`cat stamp-visibility` ;\
        externtemplate=`cat stamp-extern-template` ;\
+       dualabi=`cat stamp-dual-abi` ;\
+       cxx11abi=`cat stamp-cxx11-abi` ;\
        ldbl_compat='s,g,g,' ;\
        grep "^[         ]*#[    ]*define[       ][      ]*_GLIBCXX_LONG_DOUBLE_COMPAT[  ][      ]*1[    ]*$$" \
        ${CONFIG_HEADER} > /dev/null 2>&1 \
@@ -1543,6 +1654,8 @@ ${host_builddir}/c++config.h: ${CONFIG_HEADER} \
        -e "s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION $$ns_version," \
        -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \
        -e "s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \
+       -e "s,define _GLIBCXX_USE_DUAL_ABI, define _GLIBCXX_USE_DUAL_ABI $$dualabi," \
+       -e "s,define _GLIBCXX_USE_CXX11_ABI, define _GLIBCXX_USE_CXX11_ABI $$cxx11abi," \
        -e "$$ldbl_compat" \
            < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
        sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
@@ -1559,6 +1672,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias}
        sed -e '/^#pragma/b' \
            -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \
            -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
+           -e 's/_GLIBCXX___MINGW32_GLIBCXX___/__MINGW32__/g' \
            -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
            < $< > $@
 
@@ -1617,24 +1731,28 @@ ${pch3_output}: ${pch3_source} ${pch2_output}
 @GLIBCXX_HOSTED_TRUE@install-data-local: install-headers
 @GLIBCXX_HOSTED_FALSE@install-data-local: install-freestanding-headers
 
-# This is a subset of the full install-headers rule.  We only need <cstddef>,
-# <limits>, <cstdlib>, <cstdarg>, <new>, <typeinfo>, <exception>, and any
-# files which they include (and which we provide).  The last three headers
-# are installed by libsupc++, so only the first four and the sub-includes
-# are copied here.
+# This is a subset of the full install-headers rule.  We only need <ciso646>,
+# <cstddef>, <cfloat>, <limits>, <climits>, <cstdint>, <cstdlib>, <new>,
+# <typeinfo>, <exception>, <initializer_list>, <cstdalign>, <cstdarg>,
+# <cstdbool>, <type_traits>, <atomic>, and any files which they include (and
+# which we provide).
+# <new>, <typeinfo>, <exception>, and <initializer_list> are installed by
+# libsupc++, so only the others and the sub-includes are copied here.
 install-freestanding-headers:
        $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/bits
+       for file in c++0x_warning.h atomic_base.h; do \
+         $(INSTALL_DATA) ${glibcxx_srcdir}/include/bits/$${file} $(DESTDIR)${gxx_include_dir}/bits; done
        $(mkinstalldirs) $(DESTDIR)${host_installdir}
-       $(INSTALL_DATA) ${glibcxx_srcdir}/include/bits/c++0x_warning.h \
-         $(DESTDIR)${gxx_include_dir}/bits
        for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h \
          ${glibcxx_srcdir}/$(ABI_TWEAKS_SRCDIR)/cxxabi_tweaks.h \
          ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h; do \
          $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
        $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
-       $(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir}
+       for file in limits type_traits atomic; do \
+         $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done
        $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
-       for file in cstddef cstdlib cstdarg; do \
+       for file in ciso646 cstddef cfloat climits cstdint cstdlib \
+         cstdalign cstdarg cstdbool; do \
          $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done
 
 # The real deal.
@@ -1689,6 +1807,12 @@ install-headers:
        $(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}/${experimental_builddir}
+       for file in ${experimental_headers}; do \
+         $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${experimental_builddir}; done
+       $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${experimental_bits_builddir}
+       for file in ${experimental_bits_headers}; do \
+         $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${experimental_bits_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
@@ -1714,9 +1838,12 @@ install-headers:
        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} \
+       for file in ${host_headers} ${bits_host_headers} ${host_headers_extra} \
         ${thread_host_headers}; do \
          $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done
+       $(mkinstalldirs) $(DESTDIR)${host_installdir}/../ext
+       for file in ${ext_host_headers}; do \
+         $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}/../ext; done
 
 # To remove directories.
 clean-local:
@@ -1728,12 +1855,15 @@ 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) $(tr2_headers)
-          $(decimal_headers) $(ext_headers)
+          $(decimal_headers) $(ext_headers) $(experimental_headers)
+          $(experimental_bits_headers)
 $(std_headers): ; @:
 $(c_base_headers): ; @:
 $(tr1_headers): ; @:
 $(decimal_headers): ; @:
 $(ext_headers): ; @:
+$(experimental_headers): ; @:
+$(experimental_bits_headers): ; @:
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.