libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \
$(port_specific_symbol_files)
cp ${glibcxx_srcdir}/$(SYMVER_FILE) ./libstdc++-symbols.ver
+ chmod +w ./libstdc++-symbols.ver
if test "x$(port_specific_symbol_files)" != x; then \
- sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
- sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
- cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
- rm tmp.top tmp.bottom; \
+ if grep '^# Appended to version file.' \
+ $(port_specific_symbol_files) /dev/null > /dev/null 2>&1; then \
+ cat $(port_specific_symbol_files) >> $@; \
+ else \
+ sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
+ sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
+ cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
+ rm tmp.top tmp.bottom; \
+ fi; \
fi
if ENABLE_SYMVERS_GNU
# 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
+ basic_file.cc c++locale.cc ${ldbl_compat_sources} ${parallel_sources}
c++locale.cc: ${glibcxx_srcdir}/$(CLOCALE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CLOCALE_CC) ./$@ || true
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_settings.cc
+else
+parallel_sources =
+endif
+
+if GLIBCXX_LDBL_COMPAT
+ldbl_compat_sources = compatibility-ldbl.cc
+else
+ldbl_compat_sources =
+endif
+
# Sources present in the src directory.
sources = \
+ atomic.cc \
bitmap_allocator.cc \
pool_allocator.cc \
mt_allocator.cc \
compatibility.cc \
complex_io.cc \
ctype.cc \
+ date_time.cc \
debug.cc \
- debug_list.cc \
functexcept.cc \
- globals_locale.cc \
+ hash.cc \
+ hash_c++0x.cc \
globals_io.cc \
+ hashtable.cc \
+ hashtable_c++0x.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 \
stdexcept.cc \
strstream.cc \
+ system_error.cc \
tree.cc \
allocator-inst.cc \
concept-inst.cc \
istream-inst.cc \
istream.cc \
locale-inst.cc \
- locale-misc-inst.cc \
misc-inst.cc \
ostream-inst.cc \
sstream-inst.cc \
wlocale-inst.cc \
wstring-inst.cc \
${host_sources} \
- ${host_sources_extra}
+ ${host_sources_extra}
-VPATH = $(top_srcdir)/src:$(top_srcdir)
+vpath % $(top_srcdir)/src
+vpath % $(top_srcdir)
libstdc___la_SOURCES = $(sources)
concept-inst.o: concept-inst.cc
$(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $<
+# Use special rules for parallel mode compilation.
+PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp
+parallel_list.lo: parallel_list.cc
+ $(LTCXXCOMPILE) $(PARALLEL_FLAGS) -c $<
+parallel_list.o: parallel_list.cc
+ $(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
+
+parallel_settings.lo: parallel_settings.cc
+ $(LTCXXCOMPILE) $(PARALLEL_FLAGS) -c $<
+parallel_settings.o: parallel_settings.cc
+ $(CXXCOMPILE) $(PARALLEL_FLAGS) -c $<
+
+# Use special rules for the C++0x sources so that the proper flags are passed.
+system_error.lo: system_error.cc
+ $(LTCXXCOMPILE) -std=gnu++0x -c $<
+system_error.o: system_error.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
+ $(CXXCOMPILE) -std=gnu++0x -c $<
+
+hashtable_c++0x.lo: hashtable_c++0x.cc
+ $(LTCXXCOMPILE) -std=gnu++0x -c $<
+hashtable_c++0x.o: hashtable_c++0x.cc
+ $(CXXCOMPILE) -std=gnu++0x -c $<
+
+date_time.lo: date_time.cc
+ $(LTCXXCOMPILE) -std=gnu++0x -c $<
+date_time.o: date_time.cc
+ $(CXXCOMPILE) -std=gnu++0x -c $<
+
+atomic.lo: atomic.cc
+ $(LTCXXCOMPILE) -x c++ -std=gnu++0x -c $<
+atomic.o: atomic.cc
+ $(CXXCOMPILE) -x c++ -std=gnu++0x -c $<
+
+if GLIBCXX_LDBL_COMPAT
+# Use special rules for compatibility-ldbl.cc compilation, as we need to
+# pass -mlong-double-64.
+compatibility-ldbl.lo: compatibility-ldbl.cc
+ $(LTCXXCOMPILE) -mlong-double-64 -c $<
+compatibility-ldbl.o: compatibility-ldbl.cc
+ $(CXXCOMPILE) -mlong-double-64 -c $<
+endif
+
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
debugdir = debug
-# Build parallel set of debug objects here.
+# Build a set of debug objects here.
stamp-debug:
if test ! -d ${debugdir}; then \
mkdir -p ${debugdir}; \