X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=libstdc%2B%2B-v3%2Finclude%2FMakefile.am;h=ad4930ce9219d6234416f1670b0630a90cfe059d;hp=a4a4e44c87e70a996f59f0e603b29a4e0452a1ad;hb=7ba01ff216bc1b30c84aad56e06e0b58b24a8699;hpb=c88f873075a343e54912fa071bb0b0f84479bffe diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am index a4a4e44c87e..ad4930ce921 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. ## -## Copyright (C) 2001 Free Software Foundation, Inc. +## Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. ## Process this file with automake to produce Makefile.in. @@ -21,20 +21,78 @@ ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## USA. -AUTOMAKE_OPTIONS = 1.3 gnits -MAINT_CHARSET = latin1 +include $(top_srcdir)/fragment.am -mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs - -# Cross compiler and multilib support. -CXX = @glibcpp_CXX@ -glibcpp_srcdir=@glibcpp_srcdir@ -glibcpp_builddir=@glibcpp_builddir@ - -bits_srcdir = ${glibcpp_srcdir}/include/bits +# Standard C++ includes. +std_srcdir = ${glibcxx_srcdir}/include/std +std_builddir = . +std_headers = \ + ${std_srcdir}/std_algorithm.h \ + ${std_srcdir}/std_bitset.h \ + ${std_srcdir}/std_complex.h \ + ${std_srcdir}/std_deque.h \ + ${std_srcdir}/std_fstream.h \ + ${std_srcdir}/std_functional.h \ + ${std_srcdir}/std_iomanip.h \ + ${std_srcdir}/std_ios.h \ + ${std_srcdir}/std_iosfwd.h \ + ${std_srcdir}/std_iostream.h \ + ${std_srcdir}/std_istream.h \ + ${std_srcdir}/std_iterator.h \ + ${std_srcdir}/std_limits.h \ + ${std_srcdir}/std_list.h \ + ${std_srcdir}/std_locale.h \ + ${std_srcdir}/std_map.h \ + ${std_srcdir}/std_memory.h \ + ${std_srcdir}/std_numeric.h \ + ${std_srcdir}/std_ostream.h \ + ${std_srcdir}/std_queue.h \ + ${std_srcdir}/std_set.h \ + ${std_srcdir}/std_sstream.h \ + ${std_srcdir}/std_stack.h \ + ${std_srcdir}/std_stdexcept.h \ + ${std_srcdir}/std_streambuf.h \ + ${std_srcdir}/std_string.h \ + ${std_srcdir}/std_utility.h \ + ${std_srcdir}/std_valarray.h \ + ${std_srcdir}/std_vector.h +# Renamed at build time. +std_headers_rename = \ + algorithm \ + bitset \ + complex \ + deque \ + fstream \ + functional \ + iomanip \ + ios \ + iosfwd \ + iostream \ + istream \ + iterator \ + limits \ + list \ + locale \ + map \ + memory \ + numeric \ + ostream \ + queue \ + set \ + sstream \ + stack \ + stdexcept \ + streambuf \ + string \ + utility \ + valarray \ + vector + +bits_srcdir = ${glibcxx_srcdir}/include/bits bits_builddir = ./bits bits_headers = \ - ${bits_srcdir}/basic_file.h \ + ${bits_srcdir}/allocator.h \ + ${bits_srcdir}/atomicity.h \ ${bits_srcdir}/basic_ios.h \ ${bits_srcdir}/basic_ios.tcc \ ${bits_srcdir}/basic_string.h \ @@ -43,59 +101,30 @@ bits_headers = \ ${bits_srcdir}/char_traits.h \ ${bits_srcdir}/codecvt.h \ ${bits_srcdir}/concept_check.h \ + ${bits_srcdir}/concurrence.h \ ${bits_srcdir}/cpp_type_traits.h \ - ${bits_srcdir}/fpos.h \ + ${bits_srcdir}/deque.tcc \ ${bits_srcdir}/fstream.tcc \ ${bits_srcdir}/functexcept.h \ - ${bits_srcdir}/generic_shadow.h \ ${bits_srcdir}/gslice.h \ ${bits_srcdir}/gslice_array.h \ ${bits_srcdir}/indirect_array.h \ ${bits_srcdir}/ios_base.h \ ${bits_srcdir}/istream.tcc \ + ${bits_srcdir}/list.tcc \ + ${bits_srcdir}/locale_classes.h \ ${bits_srcdir}/locale_facets.h \ ${bits_srcdir}/locale_facets.tcc \ ${bits_srcdir}/localefwd.h \ ${bits_srcdir}/mask_array.h \ ${bits_srcdir}/ostream.tcc \ - ${bits_srcdir}/pthread_allocimpl.h \ + ${bits_srcdir}/postypes.h \ ${bits_srcdir}/stream_iterator.h \ ${bits_srcdir}/streambuf_iterator.h \ - ${bits_srcdir}/slice.h \ ${bits_srcdir}/slice_array.h \ ${bits_srcdir}/sstream.tcc \ - ${bits_srcdir}/std_algorithm.h \ - ${bits_srcdir}/std_bitset.h \ - ${bits_srcdir}/std_complex.h \ - ${bits_srcdir}/std_deque.h \ - ${bits_srcdir}/std_fstream.h \ - ${bits_srcdir}/std_functional.h \ - ${bits_srcdir}/std_iomanip.h \ - ${bits_srcdir}/std_ios.h \ - ${bits_srcdir}/std_iosfwd.h \ - ${bits_srcdir}/std_iostream.h \ - ${bits_srcdir}/std_istream.h \ - ${bits_srcdir}/std_iterator.h \ - ${bits_srcdir}/std_limits.h \ - ${bits_srcdir}/std_list.h \ - ${bits_srcdir}/std_locale.h \ - ${bits_srcdir}/std_map.h \ - ${bits_srcdir}/std_memory.h \ - ${bits_srcdir}/std_numeric.h \ - ${bits_srcdir}/std_ostream.h \ - ${bits_srcdir}/std_queue.h \ - ${bits_srcdir}/std_set.h \ - ${bits_srcdir}/std_sstream.h \ - ${bits_srcdir}/std_stack.h \ - ${bits_srcdir}/std_stdexcept.h \ - ${bits_srcdir}/std_streambuf.h \ - ${bits_srcdir}/std_string.h \ - ${bits_srcdir}/std_utility.h \ - ${bits_srcdir}/std_valarray.h \ - ${bits_srcdir}/std_vector.h \ ${bits_srcdir}/stl_algo.h \ ${bits_srcdir}/stl_algobase.h \ - ${bits_srcdir}/stl_alloc.h \ ${bits_srcdir}/stl_bvector.h \ ${bits_srcdir}/stl_construct.h \ ${bits_srcdir}/stl_deque.h \ @@ -110,25 +139,24 @@ bits_headers = \ ${bits_srcdir}/stl_multiset.h \ ${bits_srcdir}/stl_numeric.h \ ${bits_srcdir}/stl_pair.h \ - ${bits_srcdir}/stl_pthread_alloc.h \ ${bits_srcdir}/stl_queue.h \ ${bits_srcdir}/stl_raw_storage_iter.h \ ${bits_srcdir}/stl_relops.h \ ${bits_srcdir}/stl_set.h \ ${bits_srcdir}/stl_stack.h \ ${bits_srcdir}/stl_tempbuf.h \ - ${bits_srcdir}/stl_threads.h \ ${bits_srcdir}/stl_tree.h \ ${bits_srcdir}/stl_uninitialized.h \ ${bits_srcdir}/stl_vector.h \ ${bits_srcdir}/streambuf.tcc \ ${bits_srcdir}/stringfwd.h \ - ${bits_srcdir}/type_traits.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ - ${bits_srcdir}/valarray_meta.h + ${bits_srcdir}/valarray_before.h \ + ${bits_srcdir}/valarray_after.h \ + ${bits_srcdir}/vector.tcc -backward_srcdir = ${glibcpp_srcdir}/include/backward +backward_srcdir = ${glibcxx_srcdir}/include/backward backward_builddir = ./backward backward_headers = \ ${backward_srcdir}/complex.h \ @@ -165,35 +193,61 @@ backward_headers = \ ${backward_srcdir}/tree.h \ ${backward_srcdir}/vector.h \ ${backward_srcdir}/fstream.h \ - ${backward_srcdir}/strstream.h \ ${backward_srcdir}/strstream \ ${backward_srcdir}/backward_warning.h -ext_srcdir = ${glibcpp_srcdir}/include/ext +ext_srcdir = ${glibcxx_srcdir}/include/ext ext_builddir = ./ext ext_headers = \ ${ext_srcdir}/algorithm \ + ${ext_srcdir}/array_allocator.h \ + ${ext_srcdir}/bitmap_allocator.h \ + ${ext_srcdir}/codecvt_specializations.h \ + ${ext_srcdir}/debug_allocator.h \ + ${ext_srcdir}/stdio_filebuf.h \ + ${ext_srcdir}/stdio_sync_filebuf.h \ ${ext_srcdir}/functional \ ${ext_srcdir}/hash_map \ ${ext_srcdir}/hash_set \ ${ext_srcdir}/iterator \ + ${ext_srcdir}/malloc_allocator.h \ ${ext_srcdir}/memory \ + ${ext_srcdir}/mt_allocator.h \ + ${ext_srcdir}/new_allocator.h \ ${ext_srcdir}/numeric \ + ${ext_srcdir}/pod_char_traits.h \ + ${ext_srcdir}/pool_allocator.h \ + ${ext_srcdir}/rb_tree \ ${ext_srcdir}/rope \ ${ext_srcdir}/ropeimpl.h \ ${ext_srcdir}/slist \ - ${ext_srcdir}/stl_hash_fun.h \ - ${ext_srcdir}/stl_hashtable.h \ - ${ext_srcdir}/stl_rope.h + ${ext_srcdir}/hash_fun.h \ + ${ext_srcdir}/hashtable.h + +tr1_srcdir = ${glibcxx_srcdir}/include/tr1 +tr1_builddir = ./tr1 +tr1_headers = \ + ${tr1_srcdir}/array \ + ${tr1_srcdir}/functional \ + ${tr1_srcdir}/memory \ + ${tr1_srcdir}/tuple \ + ${tr1_srcdir}/utility \ + ${tr1_srcdir}/type_traits \ + ${tr1_srcdir}/type_traits_fwd.h \ + ${tr1_srcdir}/hashtable \ + ${tr1_srcdir}/unordered_set \ + ${tr1_srcdir}/unordered_map + # This is the common subset of files that all three "C" header models use. -c_base_srcdir = @C_INCLUDE_DIR@/bits -c_base_builddir = ./bits +c_base_srcdir = $(C_INCLUDE_DIR) +c_base_builddir = . c_base_headers = \ ${c_base_srcdir}/std_cassert.h \ ${c_base_srcdir}/std_cctype.h \ ${c_base_srcdir}/std_cerrno.h \ ${c_base_srcdir}/std_cfloat.h \ + ${c_base_srcdir}/std_ciso646.h \ ${c_base_srcdir}/std_climits.h \ ${c_base_srcdir}/std_clocale.h \ ${c_base_srcdir}/std_cmath.h \ @@ -206,192 +260,402 @@ c_base_headers = \ ${c_base_srcdir}/std_cstring.h \ ${c_base_srcdir}/std_ctime.h \ ${c_base_srcdir}/std_cwchar.h \ - ${c_base_srcdir}/std_cwctype.h \ - ${c_base_srcdir}/cmath.tcc - -std_srcdir = ${glibcpp_srcdir}/include/std -std_builddir = ./ -std_headers = \ - ${std_srcdir}/algorithm \ - ${std_srcdir}/bitset \ - ${std_srcdir}/complex \ - ${std_srcdir}/deque \ - ${std_srcdir}/fstream \ - ${std_srcdir}/functional \ - ${std_srcdir}/iomanip \ - ${std_srcdir}/ios \ - ${std_srcdir}/iosfwd \ - ${std_srcdir}/iostream \ - ${std_srcdir}/istream \ - ${std_srcdir}/iterator \ - ${std_srcdir}/limits \ - ${std_srcdir}/list \ - ${std_srcdir}/locale \ - ${std_srcdir}/map \ - ${std_srcdir}/memory \ - ${std_srcdir}/numeric \ - ${std_srcdir}/ostream \ - ${std_srcdir}/queue \ - ${std_srcdir}/set \ - ${std_srcdir}/sstream \ - ${std_srcdir}/stack \ - ${std_srcdir}/stdexcept \ - ${std_srcdir}/streambuf \ - ${std_srcdir}/string \ - ${std_srcdir}/utility \ - ${std_srcdir}/valarray \ - ${std_srcdir}/vector \ - ${std_srcdir}/cassert \ - ${std_srcdir}/cctype \ - ${std_srcdir}/cerrno \ - ${std_srcdir}/cfloat \ - ${std_srcdir}/climits \ - ${std_srcdir}/clocale \ - ${std_srcdir}/ciso646 \ - ${std_srcdir}/cmath \ - ${std_srcdir}/csetjmp \ - ${std_srcdir}/csignal \ - ${std_srcdir}/cstdarg \ - ${std_srcdir}/cstddef \ - ${std_srcdir}/cstdio \ - ${std_srcdir}/cstdlib \ - ${std_srcdir}/cstring \ - ${std_srcdir}/ctime \ - ${std_srcdir}/cwchar \ - ${std_srcdir}/cwctype - -target_srcdir = ${glibcpp_srcdir}/@OS_INC_SRCDIR@ -target_builddir = ./${target_alias}/bits -target_headers = \ - ${target_srcdir}/ctype_base.h \ - ${target_srcdir}/ctype_inline.h \ - ${target_srcdir}/ctype_noninline.h \ - ${target_srcdir}/os_defines.h \ - ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \ - ${glibcpp_srcdir}/@CPU_LIMITS_INC_SRCDIR@/cpu_limits.h - -thread_builddir = ./${target_alias}/bits -thread_headers = \ - ${thread_builddir}/gthr.h \ - ${thread_builddir}/gthr-single.h \ - ${thread_builddir}/gthr-default.h + ${c_base_srcdir}/std_cwctype.h +c_base_headers_rename = \ + cassert \ + cctype \ + cerrno \ + cfloat \ + ciso646 \ + climits \ + clocale \ + cmath \ + csetjmp \ + csignal \ + cstdarg \ + cstddef \ + cstdio \ + cstdlib \ + cstring \ + ctime \ + cwchar \ + cwctype + +# "C" compatibility headers. +c_compatibility_srcdir = ${glibcxx_srcdir}/include/c_compatibility +c_compatibility_builddir = . +c_compatibility_headers = \ + ${c_compatibility_srcdir}/assert.h \ + ${c_compatibility_srcdir}/ctype.h \ + ${c_compatibility_srcdir}/errno.h \ + ${c_compatibility_srcdir}/float.h \ + ${c_compatibility_srcdir}/iso646.h \ + ${c_compatibility_srcdir}/limits.h \ + ${c_compatibility_srcdir}/locale.h \ + ${c_compatibility_srcdir}/math.h \ + ${c_compatibility_srcdir}/setjmp.h \ + ${c_compatibility_srcdir}/signal.h \ + ${c_compatibility_srcdir}/stdarg.h \ + ${c_compatibility_srcdir}/stddef.h \ + ${c_compatibility_srcdir}/stdio.h \ + ${c_compatibility_srcdir}/stdlib.h \ + ${c_compatibility_srcdir}/string.h \ + ${c_compatibility_srcdir}/time.h \ + ${c_compatibility_srcdir}/wchar.h \ + ${c_compatibility_srcdir}/wctype.h + +# Debug mode headers +debug_srcdir = ${glibcxx_srcdir}/include/debug +debug_builddir = ./debug +debug_headers = \ + ${debug_srcdir}/bitset \ + ${debug_srcdir}/debug.h \ + ${debug_srcdir}/deque \ + ${debug_srcdir}/formatter.h \ + ${debug_srcdir}/hash_map \ + ${debug_srcdir}/hash_map.h \ + ${debug_srcdir}/hash_multimap.h \ + ${debug_srcdir}/hash_multiset.h \ + ${debug_srcdir}/hash_set \ + ${debug_srcdir}/hash_set.h \ + ${debug_srcdir}/list \ + ${debug_srcdir}/map \ + ${debug_srcdir}/map.h \ + ${debug_srcdir}/multimap.h \ + ${debug_srcdir}/multiset.h \ + ${debug_srcdir}/safe_base.h \ + ${debug_srcdir}/safe_iterator.h \ + ${debug_srcdir}/safe_iterator.tcc \ + ${debug_srcdir}/safe_sequence.h \ + ${debug_srcdir}/set \ + ${debug_srcdir}/set.h \ + ${debug_srcdir}/string \ + ${debug_srcdir}/vector + +# Some of the different "C" header models need extra files. +# Some "C" header schemes require the "C" compatibility headers. +# For --enable-cheaders=c_std +if GLIBCXX_C_HEADERS_C_STD +c_base_headers_extra = ${c_base_srcdir}/cmath.tcc +else +c_base_headers_extra = +endif + +if GLIBCXX_C_HEADERS_COMPATIBILITY +c_compatibility_headers_extra = ${c_compatibility_headers} +else +c_compatibility_headers_extra = +endif + +host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR) +host_builddir = ./${host_alias}/bits +host_headers = \ + ${host_srcdir}/ctype_base.h \ + ${host_srcdir}/ctype_inline.h \ + ${host_srcdir}/ctype_noninline.h \ + ${host_srcdir}/os_defines.h \ + ${glibcxx_srcdir}/$(ATOMIC_WORD_SRCDIR)/atomic_word.h \ + ${glibcxx_srcdir}/$(ABI_TWEAKS_SRCDIR)/cxxabi_tweaks.h + +# Non-installed host_header files. +host_headers_noinst = \ + ${glibcxx_srcdir}/$(CLOCALE_INTERNAL_H) + +# These host_headers_extra files are all built with ad hoc naming rules. +host_headers_extra = \ + ${host_builddir}/basic_file.h \ + ${host_builddir}/c++config.h \ + ${host_builddir}/c++allocator.h \ + ${host_builddir}/c++io.h \ + ${host_builddir}/c++locale.h \ + ${host_builddir}/messages_members.h \ + ${host_builddir}/time_members.h + +thread_host_headers = \ + ${host_builddir}/gthr.h \ + ${host_builddir}/gthr-single.h \ + ${host_builddir}/gthr-posix.h \ + ${host_builddir}/gthr-tpf.h \ + ${host_builddir}/gthr-default.h + +pch_input = ${host_builddir}/stdc++.h +pch_output_builddir = ${host_builddir}/stdc++.h.gch +pch_source = ${glibcxx_srcdir}/include/stdc++.h +PCHFLAGS=-Winvalid-pch -Wno-deprecated -x c++-header $(CXXFLAGS) +if GLIBCXX_BUILD_PCH +pch_build = ${pch_input} +pch_install = install-pch +else +pch_build = +pch_install = +endif # List of all timestamp files. By keeping only one copy of this list, both # CLEANFILES and all-local are kept up-to-date. -allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext \ - stamp-target stamp-thread +allstamped = \ + stamp-std stamp-bits stamp-c_base stamp-c_compatibility \ + stamp-backward stamp-ext stamp-tr1 stamp-debug stamp-host +# List of all files that are created by explicit building, editing, or +# catenation. +allcreated = \ + ${host_builddir}/c++config.h \ + ${thread_host_headers} \ + ${pch_build} # Here are the rules for building the headers -all-local: ${target_builddir}/c++config.h ${allstamps} +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. stamp-std: ${std_headers} @if [ ! -d "${std_builddir}" ]; then \ mkdir -p ${std_builddir} ;\ fi ;\ - (cd ${std_builddir} && @LN_S@ $? .) ;\ - echo `date` > stamp-std + if [ ! -f stamp-std ]; then \ + (cd ${std_builddir} && for h in $?; do \ + official_name=`echo $$h | sed -e 's,.*/std_,,' -e 's,\.h$$,,'` ;\ + $(LN_S) $$h ./$${official_name} || true ;\ + done) ;\ + fi ;\ + $(STAMP) stamp-std stamp-bits: ${bits_headers} @if [ ! -d "${bits_builddir}" ]; then \ mkdir -p ${bits_builddir} ;\ fi ;\ - (cd ${bits_builddir} && @LN_S@ $? .) ;\ - echo `date` > stamp-bits + if [ ! -f stamp-bits ]; then \ + (cd ${bits_builddir} && $(LN_S) $? . || true) ;\ + fi ;\ + $(STAMP) stamp-bits -stamp-c_base: ${c_base_headers} +stamp-c_base: stamp-bits ${c_base_headers} ${c_base_headers_extra} @if [ ! -d "${c_base_builddir}" ]; then \ mkdir -p ${c_base_builddir} ;\ fi ;\ - (cd ${c_base_builddir} && @LN_S@ $? .) ;\ - echo `date` > stamp-c_base + if [ ! -f stamp-c_base ]; then \ + (cd ${c_base_builddir} && for h in ${c_base_headers}; do \ + official_name=`echo $$h | sed -e 's,.*/std_,,' -e 's,\.h$$,,'` ;\ + $(LN_S) $$h ./$${official_name} || true ;\ + done) ;\ + if [ ! -z "${c_base_headers_extra}" ]; then \ + (cd ${bits_builddir} && $(LN_S) ${c_base_headers_extra} . || true) ;\ + fi ;\ + fi ;\ + $(STAMP) stamp-c_base + +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 stamp-backward: ${backward_headers} @if [ ! -d "${backward_builddir}" ]; then \ mkdir -p ${backward_builddir} ;\ fi ;\ - (cd ${backward_builddir} && @LN_S@ $? .) ;\ - echo `date` > stamp-backward + if [ ! -f stamp-backward ]; then \ + (cd ${backward_builddir} && $(LN_S) $? . || true) ;\ + fi ;\ + $(STAMP) stamp-backward stamp-ext: ${ext_headers} @if [ ! -d "${ext_builddir}" ]; then \ - mkdir -p ${ext_builddir} ;\ + mkdir -p ${ext_builddir} ;\ fi ;\ - (cd ${ext_builddir} && @LN_S@ $? .) ;\ - echo `date` > stamp-ext - -# This target is special. The timestamp on a directory gets modified -# whenever a file it contains gets modified, and that'll throw off all the -# build dependencies that need this target. On the other hand, someone -# could delete the directory and not the stamp file, faking out make. -${target_builddir}: stamp-${target_alias} -stamp-${target_alias}: - @if [ ! -d ${target_builddir} ]; then \ - mkdir -p ${target_builddir} ;\ - echo `date` > stamp-${target_alias} ;\ - fi - -# Target includes static. -stamp-target: ${target_headers} ${target_builddir} - @cd ${target_builddir} ;\ - if [ ! -f stamp-target ]; then \ - @LN_S@ ${target_headers} . ;\ - @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file_model.h ;\ - @LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h ;\ - @LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h ;\ - @LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h ;\ - @LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h ;\ - echo `date` > stamp-target; \ - fi - -# Target includes dynamic. -${target_builddir}/c++config.h: ../config.h \ - ${glibcpp_srcdir}/include/bits/c++config \ - ${target_builddir} - @cat ${glibcpp_srcdir}/include/bits/c++config > $@ ;\ - sed -e 's/HAVE_/_GLIBCPP_HAVE_/g' \ - -e 's/PACKAGE/_GLIBCPP_PACKAGE/g' \ - -e 's/VERSION/_GLIBCPP_VERSION/g' \ - -e 's/WORDS_/_GLIBCPP_WORDS_/g' \ - < ${glibcpp_builddir}/config.h >> $@ ;\ - echo "#endif // _CPP_CPPCONFIG_" >>$@ - -# Target includes for threads -glibcpp_thread_h = @glibcpp_thread_h@ -uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_] + if [ ! -f stamp-ext ]; then \ + (cd ${ext_builddir} && $(LN_S) $? . || true) ;\ + fi ;\ + $(STAMP) stamp-ext -stamp-thread: ${thread_headers} ${thread_builddir} - @echo `date` > stamp-thread +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 + +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 -${thread_builddir}/gthr.h: - sed -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCPP_\1/g' \ +stamp-${host_alias}: + @if [ ! -d ${host_builddir} ]; then \ + mkdir -p ${host_builddir} ;\ + fi ;\ + $(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} ;\ + $(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 ;\ + $(LN_S) ${glibcxx_srcdir}/$(CSTDIO_H) c++io.h || true ;\ + $(LN_S) ${glibcxx_srcdir}/$(CLOCALE_H) c++locale.h || true ;\ + $(LN_S) ${glibcxx_srcdir}/$(CLOCALE_INTERNAL_H) . || true ;\ + $(LN_S) ${glibcxx_srcdir}/$(CMESSAGES_H) messages_members.h || true ;\ + $(LN_S) ${glibcxx_srcdir}/$(CTIME_H) time_members.h || true ;\ + $(LN_S) ${glibcxx_srcdir}/$(CCODECVT_H) codecvt_specializations.h || true);\ + fi ;\ + $(STAMP) stamp-host + +# Host includes dynamic. +${host_builddir}/c++config.h: ${top_builddir}/config.h \ + ${glibcxx_srcdir}/include/bits/c++config \ + stamp-${host_alias} + @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\ + sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \ + -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \ + -e 's/VERSION/_GLIBCXX_VERSION/g' \ + -e 's/WORDS_/_GLIBCXX_WORDS_/g' \ + < ${CONFIG_HEADER} >> $@ ;\ + echo "#endif // _CXXCONFIG_" >>$@ + +# Host includes for threads +uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_] + +${host_builddir}/gthr.h: ${toplevel_srcdir}/gcc/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,^#include "\(.*\)",#include ,g' \ < ${toplevel_srcdir}/gcc/gthr.h > $@ -${thread_builddir}/gthr-single.h: - sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \ - -e 's/\(GCC${uppercase}*_H\)/_GLIBCPP_\1/g' \ +${host_builddir}/gthr-single.h: ${toplevel_srcdir}/gcc/gthr-single.h \ + stamp-${host_alias} + sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \ + -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \ < ${toplevel_srcdir}/gcc/gthr-single.h > $@ -${thread_builddir}/gthr-default.h: - sed -e 's/\(UNUSED\)/_GLIBCPP_\1/g' \ - -e 's/\(GCC${uppercase}*_H\)/_GLIBCPP_\1/g' \ - -e 's/\(${uppercase}*WEAK\)/_GLIBCPP_\1/g' \ - < ${toplevel_srcdir}/gcc/${glibcpp_thread_h} > $@ - -# One big happy istallation: just copy everything from the build to the -# install tree (except for the build stamps). -gxx_include_dir = @gxx_include_dir@ -install-data-local: - for file in `find . ! -name stamp-\* ! -name Makefile -print`; do \ - installFile=${gxx_include_dir}/$${file} ;\ - if [ -d $${file} ]; then \ - $(INSTALL) -d $${installFile} ;\ - else \ - $(INSTALL_DATA) $${file} $${installFile} ;\ - fi ;\ - done +${host_builddir}/gthr-posix.h: ${toplevel_srcdir}/gcc/gthr-posix.h \ + stamp-${host_alias} + sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \ + -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \ + -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \ + -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \ + < ${toplevel_srcdir}/gcc/gthr-posix.h > $@ + +${host_builddir}/gthr-tpf.h: ${toplevel_srcdir}/gcc/gthr-tpf.h \ + stamp-${host_alias} + sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \ + -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \ + -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \ + -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \ + < ${toplevel_srcdir}/gcc/gthr-tpf.h > $@ + +${host_builddir}/gthr-default.h: ${toplevel_srcdir}/gcc/${glibcxx_thread_h} \ + stamp-${host_alias} + sed -e 's/\(UNUSED\)/_GLIBCXX_\1/g' \ + -e 's/\(GCC${uppercase}*_H\)/_GLIBCXX_\1/g' \ + -e 's/SUPPORTS_WEAK/__GXX_WEAK__/g' \ + -e 's/\(${uppercase}*USE_WEAK\)/_GLIBCXX_\1/g' \ + -e 's,^#include "\(.*\)",#include ,g' \ + < ${toplevel_srcdir}/gcc/${glibcxx_thread_h} > $@ + +# Build a precompiled C++ include, stdc++.h.gch. +${pch_input}: ${allstamped} ${host_builddir}/c++config.h ${pch_source} + touch ${pch_input}; \ + if [ ! -d "${pch_output_builddir}" ]; then \ + mkdir -p ${pch_output_builddir}; \ + fi; \ + $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g.gch; \ + $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g.gch; + +# For robustness sake (in light of junk files or in-source +# configuration), copy from the build or source tree to the install +# tree using only the human-maintained file lists and directory +# components. Yes, with minor differences, this is sheer duplication +# of the staging rules above using $(INSTALL_DATA) instead of LN_S and +# `$(mkinstalldirs)' instead of `mkdir -p'. In particular, +# host_headers_extra are taken out of the build tree staging area; +# the rest are taken from the original source tree. + +if GLIBCXX_HOSTED +install-data-local: install-headers ${pch_install} +else +install-data-local: install-freestanding-headers +endif + +# This is a subset of the full install-headers rule. We only need , +# , , , , , , 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. +install-freestanding-headers: + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${host_builddir} + for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${host_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} + $(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir} + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} + for file in cstddef cstdlib cstdarg; do \ + $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done + +# The real deal. +install-headers: + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir} + for file in ${bits_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${backward_builddir} + for file in ${backward_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${backward_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir} + for file in ${ext_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${tr1_builddir} + for file in ${tr1_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${tr1_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} + for file in ${c_base_headers_rename}; do \ + $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done + c_base_headers_extra_install='$(c_base_headers_extra)';\ + for file in $$c_base_headers_extra_install; do \ + $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done + c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ + for file in $$c_compatibility_headers_install; do \ + $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} + for file in ${std_headers_rename}; do \ + $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done + $(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}/${host_builddir} + for file in ${host_headers} ${host_headers_extra} \ + ${thread_host_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${host_builddir}; done + +install-pch: + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pch_output_builddir} + for file in ${pch_output_builddir}/*; do \ + $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${pch_output_builddir}; done # By adding these files here, automake will remove them for 'make clean' -#CLEANFILES = ${allstamps} +CLEANFILES = ${pch_input} ${pch_output_builddir}/* + +# Stop implicit '.o' make rules from ever stomping on extensionless +# headers, in the improbable case where some foolish, crack-addled +# developer tries to create them via make in the include build +# directory. (This is more of an example of how this kind of rule can +# be made.) +.PRECIOUS: $(std_headers_rename) $(c_base_headers_rename) +$(std_headers_rename): ; @: +$(c_base_headers_rename): ; @: