X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Fsrc%2FMakefile.am;h=9a3568551385bc655d9def3b40f7c6e2d9a086a7;hb=c3007d7f30f914b1e7bb3e61306bd816288d64e1;hp=de277e5232ccafe048fd2f0e0df350cfbe03a479;hpb=217f99e612611b2ea7078f6675a903c5a94e3ed3;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am index de277e5232c..9a356855138 100644 --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am @@ -1,6 +1,7 @@ ## Makefile for the src subdirectory of the GNU C++ Standard library. ## -## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005 +## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +## 2006, 2007, 2008, 2009, 2010, 2011 ## Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. @@ -9,7 +10,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 +19,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 @@ -45,14 +45,38 @@ libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \ fi; \ fi +CLEANFILES = libstdc++-symbols.ver + if ENABLE_SYMVERS_GNU +if ENABLE_SYMVERS_SOL2 +version_arg = -Wl,--version-script,libstdc++-symbols.ver-sol2 +version_dep = libstdc++-symbols.ver-sol2 +libstdc++-symbols.ver-sol2 : libstdc++-symbols.ver + sed -e '/^#ifdef HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT/,/^#endif/d' $< \ + > $@ || (rm -f $@ ; exit 1) +else version_arg = -Wl,--version-script=libstdc++-symbols.ver version_dep = libstdc++-symbols.ver endif +endif if ENABLE_SYMVERS_GNU_NAMESPACE version_arg = -Wl,--version-script=libstdc++-symbols.ver version_dep = libstdc++-symbols.ver endif +if ENABLE_SYMVERS_SUN +version_arg = -Wl,-M,libstdc++-symbols.ver-sun +version_dep = libstdc++-symbols.ver-sun +libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ + $(toplevel_srcdir)/contrib/make_sunver.pl \ + $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) + CXXFILT="$(CXXFILT)"; export CXXFILT; \ + perl $(toplevel_srcdir)/contrib/make_sunver.pl \ + libstdc++-symbols.ver \ + $(libstdc___la_OBJECTS:%.lo=.libs/%.o) \ + `echo $(libstdc___la_LIBADD) | \ + sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ + > $@ || (rm -f $@ ; exit 1) +endif if ENABLE_SYMVERS_DARWIN version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist version_dep = libstdc++-symbols.explist @@ -66,6 +90,8 @@ libstdc++-symbols.explist : libstdc++-symbols.ver \ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ > $@ || (rm -f $@ ; exit 1) endif + +CLEANFILES += $(version_dep) else version_arg = version_dep = @@ -82,7 +108,7 @@ host_sources = \ messages_members.cc \ monetary_members.cc \ numeric_members.cc \ - time_members.cc + time_members.cc codecvt_members.cc: ${glibcxx_srcdir}/$(CCODECVT_CC) $(LN_S) ${glibcxx_srcdir}/$(CCODECVT_CC) . || true @@ -112,7 +138,8 @@ atomicity.cc: ${atomicity_file} # Source files linked in via configuration/make substitution for a # particular host, but with ad hoc naming rules. host_sources_extra = \ - basic_file.cc c++locale.cc ${ldbl_compat_sources} ${parallel_sources} + basic_file.cc c++locale.cc \ + ${inst_sources} ${ldbl_compat_sources} ${parallel_sources} c++locale.cc: ${glibcxx_srcdir}/$(CLOCALE_CC) $(LN_S) ${glibcxx_srcdir}/$(CLOCALE_CC) ./$@ || true @@ -121,7 +148,9 @@ basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC) $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true if ENABLE_PARALLEL -parallel_sources = parallel_list.cc +parallel_sources = parallel_settings.cc \ + compatibility-parallel_list.cc \ + compatibility-parallel_list-2.cc else parallel_sources = endif @@ -132,57 +161,81 @@ else ldbl_compat_sources = endif -# Sources present in the src directory. +if ENABLE_EXTERN_TEMPLATE +XTEMPLATE_FLAGS = -fno-implicit-templates +inst_sources = \ + allocator-inst.cc \ + concept-inst.cc \ + ext-inst.cc \ + fstream-inst.cc \ + ios-inst.cc \ + iostream-inst.cc \ + istream-inst.cc \ + locale-inst.cc \ + misc-inst.cc \ + ostream-inst.cc \ + sstream-inst.cc \ + streambuf-inst.cc \ + string-inst.cc \ + wlocale-inst.cc \ + wstring-inst.cc +else +XTEMPLATE_FLAGS = +inst_sources = +endif + +# Sources present in the src directory, always present. sources = \ + atomic.cc \ bitmap_allocator.cc \ pool_allocator.cc \ mt_allocator.cc \ codecvt.cc \ compatibility.cc \ + compatibility-c++0x.cc \ + compatibility-debug_list.cc \ + compatibility-debug_list-2.cc \ + compatibility-list.cc \ + compatibility-list-2.cc \ complex_io.cc \ ctype.cc \ debug.cc \ functexcept.cc \ - hash.cc \ - hash_c++0x.cc \ + functional.cc \ globals_io.cc \ - hashtable.cc \ - hashtable_c++0x.cc \ + hash_c++0x.cc \ + hash_tr1.cc \ + hashtable_c++0x.cc \ + hashtable_tr1.cc \ ios.cc \ ios_failure.cc \ ios_init.cc \ ios_locale.cc \ limits.cc \ list.cc \ - debug_list.cc \ locale.cc \ locale_init.cc \ locale_facets.cc \ localename.cc \ + math_stubs_float.cc \ + math_stubs_long_double.cc \ stdexcept.cc \ strstream.cc \ system_error.cc \ tree.cc \ - allocator-inst.cc \ - concept-inst.cc \ - fstream-inst.cc \ - ext-inst.cc \ - ios-inst.cc \ - iostream-inst.cc \ - istream-inst.cc \ istream.cc \ - locale-inst.cc \ - misc-inst.cc \ - ostream-inst.cc \ - sstream-inst.cc \ - streambuf-inst.cc \ + placeholders.cc \ + regex.cc \ + shared_ptr.cc \ streambuf.cc \ - string-inst.cc \ - valarray-inst.cc \ - wlocale-inst.cc \ - wstring-inst.cc \ + mutex.cc \ + condition_variable.cc \ + chrono.cc \ + thread.cc \ + future.cc \ + valarray.cc \ ${host_sources} \ - ${host_sources_extra} + ${host_sources_extra} vpath % $(top_srcdir)/src vpath % $(top_srcdir) @@ -190,13 +243,17 @@ vpath % $(top_srcdir) libstdc___la_SOURCES = $(sources) libstdc___la_LIBADD = \ - $(top_builddir)/libmath/libmath.la \ + $(GLIBCXX_LIBS) \ $(top_builddir)/libsupc++/libsupc++convenience.la -libstdc___la_DEPENDENCIES = ${version_dep} $(libstdc___la_LIBADD) +libstdc___la_DEPENDENCIES = \ + ${version_dep} \ + $(top_builddir)/libsupc++/libsupc++convenience.la libstdc___la_LDFLAGS = \ - -version-info $(libtool_VERSION) ${version_arg} -lm + -version-info $(libtool_VERSION) ${version_arg} -lm + +libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) # Use special rules for the deprecated source files so that they find # deprecated include files. @@ -214,18 +271,59 @@ concept-inst.lo: concept-inst.cc concept-inst.o: concept-inst.cc $(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $< -# Use special rules for parallel_list.cc compile. -parallel_list.lo: parallel_list.cc - $(LTCXXCOMPILE) -I$(glibcxx_builddir)/../libgomp -c $< -parallel_list.o: parallel_list.cc - $(CXXCOMPILE) -I$(glibcxx_builddir)/../libgomp -c $< +# Use special rules for parallel mode compilation. +PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp +parallel_settings.lo: parallel_settings.cc + $(LTCXXCOMPILE) $(PARALLEL_FLAGS) -c $< +parallel_settings.o: parallel_settings.cc + $(CXXCOMPILE) $(PARALLEL_FLAGS) -c $< + +compatibility-parallel_list.lo: compatibility-parallel_list.cc + $(LTCXXCOMPILE) -c $< +compatibility-parallel_list.o: compatibility-parallel_list.cc + $(CXXCOMPILE) -c $< + +compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc + $(LTCXXCOMPILE) -c $< +compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc + $(CXXCOMPILE) -c $< # Use special rules for the C++0x sources so that the proper flags are passed. +functexcept.lo: functexcept.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +functexcept.o: functexcept.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +shared_ptr.lo: shared_ptr.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +shared_ptr.o: shared_ptr.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + system_error.lo: system_error.cc $(LTCXXCOMPILE) -std=gnu++0x -c $< system_error.o: system_error.cc $(CXXCOMPILE) -std=gnu++0x -c $< +mutex.lo: mutex.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +mutex.o: mutex.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +condition_variable.lo: condition_variable.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +condition_variable.o: condition_variable.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +compatibility-c++0x.lo: compatibility-c++0x.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +compatibility-c++0x.o: compatibility-c++0x.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +functional.lo: functional.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +functional.o: functional.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + hash_c++0x.lo: hash_c++0x.cc $(LTCXXCOMPILE) -std=gnu++0x -c $< hash_c++0x.o: hash_c++0x.cc @@ -236,6 +334,61 @@ hashtable_c++0x.lo: hashtable_c++0x.cc hashtable_c++0x.o: hashtable_c++0x.cc $(CXXCOMPILE) -std=gnu++0x -c $< +limits.lo: limits.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +limits.o: limits.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +atomic.lo: atomic.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +atomic.o: atomic.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +fstream-inst.lo: fstream-inst.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +fstream-inst.o: fstream-inst.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +string-inst.lo: string-inst.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +string-inst.o: string-inst.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +wstring-inst.lo: wstring-inst.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +wstring-inst.o: wstring-inst.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +chrono.lo: chrono.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +chrono.o: chrono.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +thread.lo: thread.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +thread.o: thread.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +future.lo: future.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +future.o: future.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +regex.lo: regex.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +regex.o: regex.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +debug.lo: debug.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +debug.o: debug.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + +placeholders.lo: placeholders.cc + $(LTCXXCOMPILE) -std=gnu++0x -c $< +placeholders.o: placeholders.cc + $(CXXCOMPILE) -std=gnu++0x -c $< + if GLIBCXX_LDBL_COMPAT # Use special rules for compatibility-ldbl.cc compilation, as we need to # pass -mlong-double-64. @@ -251,7 +404,7 @@ endif # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden # as the occasion calls for it. AM_CXXFLAGS = \ - -fno-implicit-templates \ + $(XTEMPLATE_FLAGS) \ $(WARN_CXXFLAGS) \ $(OPTIMIZE_CXXFLAGS) \ $(CONFIG_CXXFLAGS) @@ -275,8 +428,10 @@ AM_CXXFLAGS = \ # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # attempt to infer which configuration to use -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag CXX \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \ + $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) @@ -286,8 +441,8 @@ LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) # course is problematic at this point. So, we get the top-level # directory to configure libstdc++-v3 to use gcc as the C++ # compilation driver. -CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \ - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ # Added bits to build debug library. @@ -302,13 +457,17 @@ endif debugdir = debug # Build a set of debug objects here. +# Take care to fix all possibly-relative paths. stamp-debug: if test ! -d ${debugdir}; then \ mkdir -p ${debugdir}; \ (cd ${debugdir}; \ sed -e 's/top_builddir = \.\./top_builddir = ..\/../' \ + -e 's/top_build_prefix = \.\./top_build_prefix = ..\/../' \ -e 's/srcdir = \.\./srcdir = ..\/../' \ + -e 's/VPATH = \.\./VPATH = ..\/../' \ -e 's/glibcxx_basedir = \.\./glibcxx_basedir = ..\/../' \ + -e 's/MKDIR_P = \.\./MKDIR_P = ..\/../' \ -e 's/all-local: build_debug/all-local:/' \ -e 's/install-data-local: install_debug/install-data-local:/' \ < ../Makefile > Makefile) ; \