1
2SRC_CC += \
3  c++98/basic_file.cc \
4  codecvt_members.cc \
5  ctype_configure_char.cc \
6  ctype_members.cc \
7  collate_members.cc \
8  c++98/collate_members_cow.cc \
9  messages_members.cc \
10  c++98/messages_members_cow.cc \
11  monetary_members.cc \
12  c++98/monetary_members_cow.cc \
13  numeric_members.cc \
14  c++98/numeric_members_cow.cc \
15  time_members.cc \
16  c++98/allocator-inst.cc \
17  c++98/bitmap_allocator.cc \
18  c++98/codecvt.cc \
19  c++98/compatibility-debug_list-2.cc \
20  c++98/compatibility-debug_list.cc \
21  c++98/compatibility-ldbl.cc \
22  c++98/compatibility.cc \
23  c++98/complex_io.cc \
24  c++98/concept-inst.cc \
25  c++98/cow-istream-string.cc \
26  c++98/ext-inst.cc \
27  c++98/globals_io.cc \
28  c++98/hash_tr1.cc \
29  c++98/hashtable_tr1.cc \
30  c++98/ios_failure.cc \
31  c++98/ios_init.cc \
32  c++98/ios_locale.cc \
33  c++98/istream.cc \
34  c++98/istream-string.cc \
35  c++98/list-aux-2.cc \
36  c++98/list-aux.cc \
37  c++98/list.cc \
38  c++98/list_associated-2.cc \
39  c++98/list_associated.cc \
40  c++98/locale.cc \
41  c++98/locale_facets.cc \
42  c++98/locale_init.cc \
43  c++98/localename.cc \
44  c++98/math_stubs_float.cc \
45  c++98/math_stubs_long_double.cc \
46  c++98/misc-inst.cc \
47  c++98/mt_allocator.cc \
48  c++98/parallel_settings.cc \
49  c++98/pool_allocator.cc \
50  c++98/stdexcept.cc \
51  c++98/streambuf.cc \
52  c++98/strstream.cc \
53  c++98/tree.cc \
54  c++98/valarray.cc \
55  c++11/chrono.cc \
56  c++11/codecvt.cc \
57  c++11/compatibility-atomic-c++0x.cc \
58  c++11/compatibility-c++0x.cc \
59  c++11/compatibility-condvar.cc \
60  c++11/compatibility-thread-c++0x.cc \
61  c++11/condition_variable.cc \
62  c++11/cow-fstream-inst.cc \
63  c++11/cow-locale_init.cc \
64  c++11/cow-shim_facets.cc \
65  c++11/cow-sstream-inst.cc \
66  c++11/cow-stdexcept.cc \
67  c++11/cow-string-inst.cc \
68  c++11/cow-string-io-inst.cc \
69  c++11/cow-wstring-inst.cc \
70  c++11/cow-wstring-io-inst.cc \
71  c++11/ctype.cc \
72  c++11/cxx11-hash_tr1.cc \
73  c++11/cxx11-ios_failure.cc \
74  c++11/cxx11-locale-inst.cc \
75  c++11/cxx11-shim_facets.cc \
76  c++11/cxx11-stdexcept.cc \
77  c++11/cxx11-wlocale-inst.cc \
78  c++11/debug.cc \
79  c++11/ext11-inst.cc \
80  c++11/fstream-inst.cc \
81  c++11/functexcept.cc \
82  c++11/functional.cc \
83  c++11/future.cc \
84  c++11/hash_c++0x.cc \
85  c++11/hashtable_c++0x.cc \
86  c++11/ios.cc \
87  c++11/ios-inst.cc \
88  c++11/iostream-inst.cc \
89  c++11/istream-inst.cc \
90  c++11/limits.cc \
91  c++11/locale-inst.cc \
92  c++11/mutex.cc \
93  c++11/ostream-inst.cc \
94  c++11/placeholders.cc \
95  c++11/random.cc \
96  c++11/regex.cc \
97  c++11/shared_ptr.cc \
98  c++11/snprintf_lite.cc \
99  c++11/sso_string.cc \
100  c++11/sstream-inst.cc \
101  c++11/streambuf-inst.cc \
102  c++11/string-inst.cc \
103  c++11/string-io-inst.cc \
104  c++11/system_error.cc \
105  c++11/thread.cc \
106  c++11/wlocale-inst.cc \
107  c++11/wstring-inst.cc \
108  c++11/wstring-io-inst.cc \
109  filesystem/dir.cc \
110  filesystem/ops.cc \
111  filesystem/path.cc \
112  filesystem/cow-dir.cc \
113  filesystem/cow-ops.cc \
114  filesystem/cow-path.cc \
115  c++17/fs_dir.cc \
116  c++17/fs_ops.cc \
117  c++17/fs_path.cc \
118  c++17/memory_resource.cc \
119  c++17/cow-fs_dir.cc \
120  c++17/cow-fs_ops.cc \
121  c++17/cow-fs_path.cc \
122  c++17/ostream-inst.cc \
123  c++17/string-inst.cc \
124  c++17/cow-string-inst.cc \
125  c++20/sstream-inst.cc
126
127
128CXXFLAGS_c++98/collate_members_cow.cc   += -D_GLIBCXX_USE_CXX11_ABI=0 -fimplicit-templates
129CXXFLAGS_c++98/messages_members_cow.cc  += -D_GLIBCXX_USE_CXX11_ABI=0 -fimplicit-templates
130CXXFLAGS_c++98/monetary_members_cow.cc  += -D_GLIBCXX_USE_CXX11_ABI=0 -fimplicit-templates
131CXXFLAGS_c++98/numeric_members_cow.cc   += -D_GLIBCXX_USE_CXX11_ABI=0 -fimplicit-templates
132
133CXXFLAGS_c++98/concept-inst.cc     += -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates
134CXXFLAGS_c++98/locale_init.cc      += -std=gnu++11
135CXXFLAGS_c++98/localename.cc       += -std=gnu++11
136PRIVATE_INCDIR_c++98/strstream.cc  += $(STDCXX_CONTRIB_DIR)/include/backward
137CXXFLAGS_c++98/strstream.cc        += -Wno-deprecated
138
139
140CXXFLAGS_c++11/hashtable_c++0x.cc  += -fimplicit-templates
141
142# not all code is C++11
143SRC_CC_IS_CXX11 :=
144CXXFLAGS        += $(if $(filter c++20/%,$@),-std=gnu++20 -fimplicit-templates)
145CXXFLAGS        += $(if $(filter c++17/%,$@),-std=gnu++17 -fimplicit-templates)
146CXXFLAGS        += $(if $(filter c++11/%,$@),-std=gnu++11)
147CXXFLAGS        += $(if $(filter c++98/%,$@),-std=gnu++98)
148CXXFLAGS        += $(if $(filter filesystem/%,$@),-std=gnu++17)
149
150# -Wmissing-declarations triggers
151WARNINGS = $(WARNINGS_MINIMAL)
152
153# Only include the following in full libstdc++ builds
154SRC_CC       += $(if $(filter -DL4_MINIMAL_LIBC,$(DEFINES)),,c_locale.cc)
155
156vpath %.cc $(STDCXX_CONTRIB_DIR)/config/os/generic
157
158$(OBJ_DIR)/c++98/basic_file.cc: $(STDCXX_CONTRIB_DIR)/config/io/basic_file_stdio.cc
159	$(VERBOSE)$(MKDIR) $(@D)
160	$(VERBOSE)$(LN) -sf $< $@
161
162$(OBJ_DIR)/c++98/collate_members_cow.cc: $(STDCXX_CONTRIB_DIR)/config/locale/generic/collate_members.cc
163	$(VERBOSE)$(MKDIR) $(@D)
164	$(VERBOSE)$(LN) -sf $< $@
165
166$(OBJ_DIR)/c++98/messages_members_cow.cc: $(STDCXX_CONTRIB_DIR)/config/locale/generic/messages_members.cc
167	$(VERBOSE)$(MKDIR) $(@D)
168	$(VERBOSE)$(LN) -sf $< $@
169
170$(OBJ_DIR)/c++98/monetary_members_cow.cc: $(STDCXX_CONTRIB_DIR)/config/locale/generic/monetary_members.cc
171	$(VERBOSE)$(MKDIR) $(@D)
172	$(VERBOSE)$(LN) -sf $< $@
173
174$(OBJ_DIR)/c++98/numeric_members_cow.cc: $(STDCXX_CONTRIB_DIR)/config/locale/generic/numeric_members.cc
175	$(VERBOSE)$(MKDIR) $(@D)
176	$(VERBOSE)$(LN) -sf $< $@
177