blob: 4bb77452f203519f8b4b532610acc5345882d30e [file] [log] [blame]
Brian Silverman9c614bc2016-02-15 20:20:02 -05001## Process this file with automake to produce Makefile.in
2
3if HAVE_ZLIB
4GZCHECKPROGRAMS = zcgzip zcgunzip
5GZHEADERS = google/protobuf/io/gzip_stream.h
6GZTESTS = google/protobuf/io/gzip_stream_unittest.sh
7ZLIB_DEF = -DHAVE_ZLIB=1
8else
9GZCHECKPROGRAMS =
10GZHEADERS =
11GZTESTS =
12ZLIB_DEF =
13endif
14
15if HAVE_PTHREAD
16PTHREAD_DEF = -DHAVE_PTHREAD=1
17else
18PTHREAD_DEF =
19endif
20
21if GCC
Austin Schuh40c16522018-10-28 20:27:54 -070022# Turn on all warnings except for sign comparison (we ignore sign comparison
23# in Google so our code base have tons of such warnings).
24NO_OPT_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF) -Wall -Wno-sign-compare
Brian Silverman9c614bc2016-02-15 20:20:02 -050025else
26NO_OPT_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF)
27endif
28
29AM_CXXFLAGS = $(NO_OPT_CXXFLAGS) $(PROTOBUF_OPT_FLAG)
30
31AM_LDFLAGS = $(PTHREAD_CFLAGS)
32
33# If I say "dist_include_DATA", automake complains that $(includedir) is not
34# a "legitimate" directory for DATA. Screw you, automake.
35protodir = $(includedir)
Austin Schuh40c16522018-10-28 20:27:54 -070036
37# If you are adding new files here, also remember to change the build files for
38# all other languages, //protoc-artifacts/build-zip.sh and run
39# //update_file_list.sh for bazel.
40nobase_dist_proto_DATA = google/protobuf/descriptor.proto \
41 google/protobuf/any.proto \
42 google/protobuf/api.proto \
43 google/protobuf/duration.proto \
44 google/protobuf/empty.proto \
45 google/protobuf/field_mask.proto \
46 google/protobuf/source_context.proto \
47 google/protobuf/struct.proto \
48 google/protobuf/timestamp.proto \
49 google/protobuf/type.proto \
50 google/protobuf/wrappers.proto \
Brian Silverman9c614bc2016-02-15 20:20:02 -050051 google/protobuf/compiler/plugin.proto
52
53# Not sure why these don't get cleaned automatically.
54clean-local:
55 rm -f *.loT
56
57CLEANFILES = $(protoc_outputs) unittest_proto_middleman \
Austin Schuh40c16522018-10-28 20:27:54 -070058 testzip.jar testzip.list testzip.proto testzip.zip \
59 no_warning_test.cc
Brian Silverman9c614bc2016-02-15 20:20:02 -050060
61MAINTAINERCLEANFILES = \
62 Makefile.in
63
Austin Schuh40c16522018-10-28 20:27:54 -070064nobase_include_HEADERS = \
65 google/protobuf/stubs/callback.h \
66 google/protobuf/stubs/bytestream.h \
67 google/protobuf/stubs/casts.h \
68 google/protobuf/stubs/common.h \
69 google/protobuf/stubs/fastmem.h \
70 google/protobuf/stubs/hash.h \
71 google/protobuf/stubs/logging.h \
72 google/protobuf/stubs/macros.h \
73 google/protobuf/stubs/mutex.h \
74 google/protobuf/stubs/once.h \
75 google/protobuf/stubs/platform_macros.h \
76 google/protobuf/stubs/port.h \
77 google/protobuf/stubs/singleton.h \
78 google/protobuf/stubs/status.h \
79 google/protobuf/stubs/stl_util.h \
80 google/protobuf/stubs/stringpiece.h \
81 google/protobuf/stubs/template_util.h \
82 google/protobuf/any.pb.h \
83 google/protobuf/api.pb.h \
84 google/protobuf/any.h \
85 google/protobuf/arena.h \
86 google/protobuf/arena_impl.h \
87 google/protobuf/arenastring.h \
88 google/protobuf/descriptor_database.h \
89 google/protobuf/descriptor.h \
90 google/protobuf/descriptor.pb.h \
91 google/protobuf/duration.pb.h \
92 google/protobuf/dynamic_message.h \
93 google/protobuf/empty.pb.h \
94 google/protobuf/extension_set.h \
95 google/protobuf/field_mask.pb.h \
96 google/protobuf/generated_enum_reflection.h \
97 google/protobuf/generated_enum_util.h \
98 google/protobuf/generated_message_reflection.h \
99 google/protobuf/generated_message_table_driven.h \
100 google/protobuf/generated_message_util.h \
101 google/protobuf/has_bits.h \
102 google/protobuf/implicit_weak_message.h \
103 google/protobuf/inlined_string_field.h \
104 google/protobuf/map_entry.h \
105 google/protobuf/map_entry_lite.h \
106 google/protobuf/map_field.h \
107 google/protobuf/map_field_inl.h \
108 google/protobuf/map_field_lite.h \
109 google/protobuf/map.h \
110 google/protobuf/map_type_handler.h \
111 google/protobuf/message.h \
112 google/protobuf/message_lite.h \
113 google/protobuf/metadata.h \
114 google/protobuf/metadata_lite.h \
115 google/protobuf/reflection.h \
116 google/protobuf/reflection_ops.h \
117 google/protobuf/repeated_field.h \
118 google/protobuf/service.h \
119 google/protobuf/source_context.pb.h \
120 google/protobuf/struct.pb.h \
121 google/protobuf/text_format.h \
122 google/protobuf/timestamp.pb.h \
123 google/protobuf/type.pb.h \
124 google/protobuf/unknown_field_set.h \
125 google/protobuf/wire_format.h \
126 google/protobuf/wire_format_lite.h \
127 google/protobuf/wire_format_lite_inl.h \
128 google/protobuf/wrappers.pb.h \
129 google/protobuf/io/coded_stream.h \
130 $(GZHEADERS) \
131 google/protobuf/io/printer.h \
132 google/protobuf/io/strtod.h \
133 google/protobuf/io/tokenizer.h \
134 google/protobuf/io/zero_copy_stream.h \
135 google/protobuf/io/zero_copy_stream_impl.h \
136 google/protobuf/io/zero_copy_stream_impl_lite.h \
137 google/protobuf/compiler/code_generator.h \
138 google/protobuf/compiler/command_line_interface.h \
139 google/protobuf/compiler/importer.h \
140 google/protobuf/compiler/parser.h \
141 google/protobuf/compiler/plugin.h \
142 google/protobuf/compiler/plugin.pb.h \
143 google/protobuf/compiler/cpp/cpp_generator.h \
144 google/protobuf/compiler/csharp/csharp_generator.h \
145 google/protobuf/compiler/csharp/csharp_names.h \
146 google/protobuf/compiler/java/java_generator.h \
147 google/protobuf/compiler/java/java_names.h \
148 google/protobuf/compiler/js/js_generator.h \
149 google/protobuf/compiler/js/well_known_types_embed.h \
150 google/protobuf/compiler/objectivec/objectivec_generator.h \
151 google/protobuf/compiler/objectivec/objectivec_helpers.h \
152 google/protobuf/compiler/php/php_generator.h \
153 google/protobuf/compiler/python/python_generator.h \
154 google/protobuf/compiler/ruby/ruby_generator.h \
155 google/protobuf/util/type_resolver.h \
156 google/protobuf/util/delimited_message_util.h \
157 google/protobuf/util/field_comparator.h \
158 google/protobuf/util/field_mask_util.h \
159 google/protobuf/util/json_util.h \
160 google/protobuf/util/time_util.h \
161 google/protobuf/util/type_resolver_util.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500162 google/protobuf/util/message_differencer.h
163
164lib_LTLIBRARIES = libprotobuf-lite.la libprotobuf.la libprotoc.la
165
166libprotobuf_lite_la_LIBADD = $(PTHREAD_LIBS)
Austin Schuh40c16522018-10-28 20:27:54 -0700167libprotobuf_lite_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined
168if HAVE_LD_VERSION_SCRIPT
169libprotobuf_lite_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf-lite.map
170EXTRA_libprotobuf_lite_la_DEPENDENCIES = libprotobuf-lite.map
171endif
Brian Silverman9c614bc2016-02-15 20:20:02 -0500172libprotobuf_lite_la_SOURCES = \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500173 google/protobuf/stubs/bytestream.cc \
174 google/protobuf/stubs/bytestream.h \
175 google/protobuf/stubs/common.cc \
176 google/protobuf/stubs/hash.h \
177 google/protobuf/stubs/int128.cc \
178 google/protobuf/stubs/int128.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700179 google/protobuf/stubs/io_win32.cc \
180 google/protobuf/stubs/io_win32.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500181 google/protobuf/stubs/map_util.h \
182 google/protobuf/stubs/mathutil.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500183 google/protobuf/stubs/status.cc \
184 google/protobuf/stubs/status.h \
185 google/protobuf/stubs/status_macros.h \
186 google/protobuf/stubs/statusor.cc \
187 google/protobuf/stubs/statusor.h \
188 google/protobuf/stubs/stringpiece.cc \
189 google/protobuf/stubs/stringpiece.h \
190 google/protobuf/stubs/stringprintf.cc \
191 google/protobuf/stubs/stringprintf.h \
192 google/protobuf/stubs/structurally_valid.cc \
193 google/protobuf/stubs/strutil.cc \
194 google/protobuf/stubs/strutil.h \
195 google/protobuf/stubs/time.cc \
196 google/protobuf/stubs/time.h \
197 google/protobuf/arena.cc \
198 google/protobuf/arenastring.cc \
199 google/protobuf/extension_set.cc \
200 google/protobuf/generated_message_util.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700201 google/protobuf/generated_message_table_driven_lite.h \
202 google/protobuf/generated_message_table_driven_lite.cc \
203 google/protobuf/implicit_weak_message.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500204 google/protobuf/message_lite.cc \
205 google/protobuf/repeated_field.cc \
206 google/protobuf/wire_format_lite.cc \
207 google/protobuf/io/coded_stream.cc \
208 google/protobuf/io/coded_stream_inl.h \
209 google/protobuf/io/zero_copy_stream.cc \
210 google/protobuf/io/zero_copy_stream_impl_lite.cc
211
212libprotobuf_la_LIBADD = $(PTHREAD_LIBS)
Austin Schuh40c16522018-10-28 20:27:54 -0700213libprotobuf_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined
214if HAVE_LD_VERSION_SCRIPT
215libprotobuf_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf.map
216EXTRA_libprotobuf_la_DEPENDENCIES = libprotobuf.map
217endif
Brian Silverman9c614bc2016-02-15 20:20:02 -0500218libprotobuf_la_SOURCES = \
219 $(libprotobuf_lite_la_SOURCES) \
220 google/protobuf/any.pb.cc \
221 google/protobuf/api.pb.cc \
222 google/protobuf/stubs/mathlimits.cc \
223 google/protobuf/stubs/mathlimits.h \
224 google/protobuf/any.cc \
225 google/protobuf/descriptor.cc \
226 google/protobuf/descriptor_database.cc \
227 google/protobuf/descriptor.pb.cc \
228 google/protobuf/duration.pb.cc \
229 google/protobuf/dynamic_message.cc \
230 google/protobuf/empty.pb.cc \
231 google/protobuf/extension_set_heavy.cc \
232 google/protobuf/field_mask.pb.cc \
233 google/protobuf/generated_message_reflection.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700234 google/protobuf/generated_message_table_driven_lite.h \
235 google/protobuf/generated_message_table_driven.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500236 google/protobuf/map_field.cc \
237 google/protobuf/message.cc \
238 google/protobuf/reflection_internal.h \
239 google/protobuf/reflection_ops.cc \
240 google/protobuf/service.cc \
241 google/protobuf/source_context.pb.cc \
242 google/protobuf/struct.pb.cc \
243 google/protobuf/stubs/substitute.cc \
244 google/protobuf/stubs/substitute.h \
245 google/protobuf/text_format.cc \
246 google/protobuf/timestamp.pb.cc \
247 google/protobuf/type.pb.cc \
248 google/protobuf/unknown_field_set.cc \
249 google/protobuf/wire_format.cc \
250 google/protobuf/wrappers.pb.cc \
251 google/protobuf/io/gzip_stream.cc \
252 google/protobuf/io/printer.cc \
253 google/protobuf/io/strtod.cc \
254 google/protobuf/io/tokenizer.cc \
255 google/protobuf/io/zero_copy_stream_impl.cc \
256 google/protobuf/compiler/importer.cc \
257 google/protobuf/compiler/parser.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700258 google/protobuf/util/delimited_message_util.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500259 google/protobuf/util/field_comparator.cc \
260 google/protobuf/util/field_mask_util.cc \
261 google/protobuf/util/internal/constants.h \
262 google/protobuf/util/internal/datapiece.cc \
263 google/protobuf/util/internal/datapiece.h \
264 google/protobuf/util/internal/default_value_objectwriter.cc \
265 google/protobuf/util/internal/default_value_objectwriter.h \
266 google/protobuf/util/internal/error_listener.cc \
267 google/protobuf/util/internal/error_listener.h \
268 google/protobuf/util/internal/expecting_objectwriter.h \
269 google/protobuf/util/internal/field_mask_utility.cc \
270 google/protobuf/util/internal/field_mask_utility.h \
271 google/protobuf/util/internal/json_escaping.cc \
272 google/protobuf/util/internal/json_escaping.h \
273 google/protobuf/util/internal/json_objectwriter.cc \
274 google/protobuf/util/internal/json_objectwriter.h \
275 google/protobuf/util/internal/json_stream_parser.cc \
276 google/protobuf/util/internal/json_stream_parser.h \
277 google/protobuf/util/internal/location_tracker.h \
278 google/protobuf/util/internal/mock_error_listener.h \
279 google/protobuf/util/internal/object_location_tracker.h \
280 google/protobuf/util/internal/object_source.h \
281 google/protobuf/util/internal/object_writer.cc \
282 google/protobuf/util/internal/object_writer.h \
283 google/protobuf/util/internal/protostream_objectsource.cc \
284 google/protobuf/util/internal/protostream_objectsource.h \
285 google/protobuf/util/internal/protostream_objectwriter.cc \
286 google/protobuf/util/internal/protostream_objectwriter.h \
287 google/protobuf/util/internal/proto_writer.cc \
288 google/protobuf/util/internal/proto_writer.h \
289 google/protobuf/util/internal/structured_objectwriter.h \
290 google/protobuf/util/internal/type_info.cc \
291 google/protobuf/util/internal/type_info.h \
292 google/protobuf/util/internal/type_info_test_helper.cc \
293 google/protobuf/util/internal/type_info_test_helper.h \
294 google/protobuf/util/internal/utility.cc \
295 google/protobuf/util/internal/utility.h \
296 google/protobuf/util/json_util.cc \
297 google/protobuf/util/message_differencer.cc \
298 google/protobuf/util/time_util.cc \
299 google/protobuf/util/type_resolver_util.cc
300
301nodist_libprotobuf_la_SOURCES = $(nodist_libprotobuf_lite_la_SOURCES)
302
303libprotoc_la_LIBADD = $(PTHREAD_LIBS) libprotobuf.la
Austin Schuh40c16522018-10-28 20:27:54 -0700304libprotoc_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined
305if HAVE_LD_VERSION_SCRIPT
306libprotoc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotoc.map
307EXTRA_libprotoc_la_DEPENDENCIES = libprotoc.map
308endif
Brian Silverman9c614bc2016-02-15 20:20:02 -0500309libprotoc_la_SOURCES = \
310 google/protobuf/compiler/code_generator.cc \
311 google/protobuf/compiler/command_line_interface.cc \
312 google/protobuf/compiler/plugin.cc \
313 google/protobuf/compiler/plugin.pb.cc \
314 google/protobuf/compiler/subprocess.cc \
315 google/protobuf/compiler/subprocess.h \
316 google/protobuf/compiler/zip_writer.cc \
317 google/protobuf/compiler/zip_writer.h \
318 google/protobuf/compiler/cpp/cpp_enum.cc \
319 google/protobuf/compiler/cpp/cpp_enum.h \
320 google/protobuf/compiler/cpp/cpp_enum_field.cc \
321 google/protobuf/compiler/cpp/cpp_enum_field.h \
322 google/protobuf/compiler/cpp/cpp_extension.cc \
323 google/protobuf/compiler/cpp/cpp_extension.h \
324 google/protobuf/compiler/cpp/cpp_field.cc \
325 google/protobuf/compiler/cpp/cpp_field.h \
326 google/protobuf/compiler/cpp/cpp_file.cc \
327 google/protobuf/compiler/cpp/cpp_file.h \
328 google/protobuf/compiler/cpp/cpp_generator.cc \
329 google/protobuf/compiler/cpp/cpp_helpers.cc \
330 google/protobuf/compiler/cpp/cpp_helpers.h \
331 google/protobuf/compiler/cpp/cpp_map_field.cc \
332 google/protobuf/compiler/cpp/cpp_map_field.h \
333 google/protobuf/compiler/cpp/cpp_message.cc \
334 google/protobuf/compiler/cpp/cpp_message.h \
335 google/protobuf/compiler/cpp/cpp_message_field.cc \
336 google/protobuf/compiler/cpp/cpp_message_field.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700337 google/protobuf/compiler/cpp/cpp_message_layout_helper.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500338 google/protobuf/compiler/cpp/cpp_options.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700339 google/protobuf/compiler/cpp/cpp_padding_optimizer.cc \
340 google/protobuf/compiler/cpp/cpp_padding_optimizer.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500341 google/protobuf/compiler/cpp/cpp_primitive_field.cc \
342 google/protobuf/compiler/cpp/cpp_primitive_field.h \
343 google/protobuf/compiler/cpp/cpp_service.cc \
344 google/protobuf/compiler/cpp/cpp_service.h \
345 google/protobuf/compiler/cpp/cpp_string_field.cc \
346 google/protobuf/compiler/cpp/cpp_string_field.h \
347 google/protobuf/compiler/java/java_context.cc \
348 google/protobuf/compiler/java/java_context.h \
349 google/protobuf/compiler/java/java_enum.cc \
350 google/protobuf/compiler/java/java_enum_lite.cc \
351 google/protobuf/compiler/java/java_enum_field.cc \
352 google/protobuf/compiler/java/java_enum_field.h \
353 google/protobuf/compiler/java/java_enum_field_lite.cc \
354 google/protobuf/compiler/java/java_enum_field_lite.h \
355 google/protobuf/compiler/java/java_enum.h \
356 google/protobuf/compiler/java/java_enum_lite.h \
357 google/protobuf/compiler/java/java_extension.cc \
358 google/protobuf/compiler/java/java_extension.h \
359 google/protobuf/compiler/java/java_extension_lite.cc \
360 google/protobuf/compiler/java/java_extension_lite.h \
361 google/protobuf/compiler/java/java_field.cc \
362 google/protobuf/compiler/java/java_field.h \
363 google/protobuf/compiler/java/java_file.cc \
364 google/protobuf/compiler/java/java_file.h \
365 google/protobuf/compiler/java/java_generator.cc \
366 google/protobuf/compiler/java/java_generator_factory.cc \
367 google/protobuf/compiler/java/java_generator_factory.h \
368 google/protobuf/compiler/java/java_helpers.cc \
369 google/protobuf/compiler/java/java_helpers.h \
370 google/protobuf/compiler/java/java_lazy_message_field.cc \
371 google/protobuf/compiler/java/java_lazy_message_field.h \
372 google/protobuf/compiler/java/java_lazy_message_field_lite.cc\
373 google/protobuf/compiler/java/java_lazy_message_field_lite.h \
374 google/protobuf/compiler/java/java_map_field.cc \
375 google/protobuf/compiler/java/java_map_field.h \
376 google/protobuf/compiler/java/java_map_field_lite.cc \
377 google/protobuf/compiler/java/java_map_field_lite.h \
378 google/protobuf/compiler/java/java_message.cc \
379 google/protobuf/compiler/java/java_message_lite.cc \
380 google/protobuf/compiler/java/java_message_builder.cc \
381 google/protobuf/compiler/java/java_message_builder_lite.cc \
382 google/protobuf/compiler/java/java_message_field.cc \
383 google/protobuf/compiler/java/java_message_field.h \
384 google/protobuf/compiler/java/java_message_field_lite.cc \
385 google/protobuf/compiler/java/java_message_field_lite.h \
386 google/protobuf/compiler/java/java_message.h \
387 google/protobuf/compiler/java/java_message_lite.h \
388 google/protobuf/compiler/java/java_message_builder.h \
389 google/protobuf/compiler/java/java_message_builder_lite.h \
390 google/protobuf/compiler/java/java_name_resolver.cc \
391 google/protobuf/compiler/java/java_name_resolver.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700392 google/protobuf/compiler/java/java_options.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500393 google/protobuf/compiler/java/java_primitive_field.cc \
394 google/protobuf/compiler/java/java_primitive_field.h \
395 google/protobuf/compiler/java/java_primitive_field_lite.cc \
396 google/protobuf/compiler/java/java_primitive_field_lite.h \
397 google/protobuf/compiler/java/java_shared_code_generator.cc \
398 google/protobuf/compiler/java/java_shared_code_generator.h \
399 google/protobuf/compiler/java/java_service.cc \
400 google/protobuf/compiler/java/java_service.h \
401 google/protobuf/compiler/java/java_string_field.cc \
402 google/protobuf/compiler/java/java_string_field.h \
403 google/protobuf/compiler/java/java_string_field_lite.cc \
404 google/protobuf/compiler/java/java_string_field_lite.h \
405 google/protobuf/compiler/java/java_doc_comment.cc \
406 google/protobuf/compiler/java/java_doc_comment.h \
407 google/protobuf/compiler/js/js_generator.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700408 google/protobuf/compiler/js/well_known_types_embed.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500409 google/protobuf/compiler/objectivec/objectivec_enum.cc \
410 google/protobuf/compiler/objectivec/objectivec_enum.h \
411 google/protobuf/compiler/objectivec/objectivec_enum_field.cc \
412 google/protobuf/compiler/objectivec/objectivec_enum_field.h \
413 google/protobuf/compiler/objectivec/objectivec_extension.cc \
414 google/protobuf/compiler/objectivec/objectivec_extension.h \
415 google/protobuf/compiler/objectivec/objectivec_field.cc \
416 google/protobuf/compiler/objectivec/objectivec_field.h \
417 google/protobuf/compiler/objectivec/objectivec_file.cc \
418 google/protobuf/compiler/objectivec/objectivec_file.h \
419 google/protobuf/compiler/objectivec/objectivec_generator.cc \
420 google/protobuf/compiler/objectivec/objectivec_helpers.cc \
421 google/protobuf/compiler/objectivec/objectivec_helpers.h \
422 google/protobuf/compiler/objectivec/objectivec_map_field.cc \
423 google/protobuf/compiler/objectivec/objectivec_map_field.h \
424 google/protobuf/compiler/objectivec/objectivec_message.cc \
425 google/protobuf/compiler/objectivec/objectivec_message.h \
426 google/protobuf/compiler/objectivec/objectivec_message_field.cc \
427 google/protobuf/compiler/objectivec/objectivec_message_field.h \
428 google/protobuf/compiler/objectivec/objectivec_oneof.cc \
429 google/protobuf/compiler/objectivec/objectivec_oneof.h \
430 google/protobuf/compiler/objectivec/objectivec_primitive_field.cc \
431 google/protobuf/compiler/objectivec/objectivec_primitive_field.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700432 google/protobuf/compiler/php/php_generator.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500433 google/protobuf/compiler/python/python_generator.cc \
434 google/protobuf/compiler/ruby/ruby_generator.cc \
435 google/protobuf/compiler/csharp/csharp_doc_comment.cc \
436 google/protobuf/compiler/csharp/csharp_doc_comment.h \
437 google/protobuf/compiler/csharp/csharp_enum.cc \
438 google/protobuf/compiler/csharp/csharp_enum.h \
439 google/protobuf/compiler/csharp/csharp_enum_field.cc \
440 google/protobuf/compiler/csharp/csharp_enum_field.h \
441 google/protobuf/compiler/csharp/csharp_field_base.cc \
442 google/protobuf/compiler/csharp/csharp_field_base.h \
443 google/protobuf/compiler/csharp/csharp_generator.cc \
444 google/protobuf/compiler/csharp/csharp_helpers.cc \
445 google/protobuf/compiler/csharp/csharp_helpers.h \
446 google/protobuf/compiler/csharp/csharp_map_field.cc \
447 google/protobuf/compiler/csharp/csharp_map_field.h \
448 google/protobuf/compiler/csharp/csharp_message.cc \
449 google/protobuf/compiler/csharp/csharp_message.h \
450 google/protobuf/compiler/csharp/csharp_message_field.cc \
451 google/protobuf/compiler/csharp/csharp_message_field.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700452 google/protobuf/compiler/csharp/csharp_options.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500453 google/protobuf/compiler/csharp/csharp_primitive_field.cc \
454 google/protobuf/compiler/csharp/csharp_primitive_field.h \
455 google/protobuf/compiler/csharp/csharp_reflection_class.cc \
456 google/protobuf/compiler/csharp/csharp_reflection_class.h \
457 google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc \
458 google/protobuf/compiler/csharp/csharp_repeated_enum_field.h \
459 google/protobuf/compiler/csharp/csharp_repeated_message_field.cc \
460 google/protobuf/compiler/csharp/csharp_repeated_message_field.h \
461 google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc \
462 google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h \
463 google/protobuf/compiler/csharp/csharp_source_generator_base.cc \
464 google/protobuf/compiler/csharp/csharp_source_generator_base.h \
465 google/protobuf/compiler/csharp/csharp_wrapper_field.cc \
466 google/protobuf/compiler/csharp/csharp_wrapper_field.h
467
468bin_PROGRAMS = protoc
469protoc_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la
470protoc_SOURCES = google/protobuf/compiler/main.cc
471
472# Tests ==============================================================
473
474protoc_inputs = \
475 google/protobuf/any_test.proto \
476 google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto \
477 google/protobuf/map_lite_unittest.proto \
478 google/protobuf/map_proto2_unittest.proto \
479 google/protobuf/map_unittest.proto \
480 google/protobuf/unittest_arena.proto \
481 google/protobuf/unittest_custom_options.proto \
482 google/protobuf/unittest_drop_unknown_fields.proto \
483 google/protobuf/unittest_embed_optimize_for.proto \
484 google/protobuf/unittest_empty.proto \
485 google/protobuf/unittest_enormous_descriptor.proto \
486 google/protobuf/unittest_import_lite.proto \
487 google/protobuf/unittest_import.proto \
488 google/protobuf/unittest_import_public_lite.proto \
489 google/protobuf/unittest_import_public.proto \
Austin Schuh40c16522018-10-28 20:27:54 -0700490 google/protobuf/unittest_lazy_dependencies.proto \
491 google/protobuf/unittest_lazy_dependencies_custom_option.proto \
492 google/protobuf/unittest_lazy_dependencies_enum.proto \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500493 google/protobuf/unittest_lite_imports_nonlite.proto \
494 google/protobuf/unittest_lite.proto \
495 google/protobuf/unittest_mset.proto \
496 google/protobuf/unittest_mset_wire_format.proto \
497 google/protobuf/unittest_no_arena_lite.proto \
498 google/protobuf/unittest_no_arena_import.proto \
499 google/protobuf/unittest_no_arena.proto \
500 google/protobuf/unittest_no_field_presence.proto \
501 google/protobuf/unittest_no_generic_services.proto \
502 google/protobuf/unittest_optimize_for.proto \
503 google/protobuf/unittest_preserve_unknown_enum2.proto \
504 google/protobuf/unittest_preserve_unknown_enum.proto \
505 google/protobuf/unittest.proto \
506 google/protobuf/unittest_proto3_arena.proto \
Austin Schuh40c16522018-10-28 20:27:54 -0700507 google/protobuf/unittest_proto3_arena_lite.proto \
508 google/protobuf/unittest_proto3_lite.proto \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500509 google/protobuf/unittest_well_known_types.proto \
510 google/protobuf/util/internal/testdata/anys.proto \
511 google/protobuf/util/internal/testdata/books.proto \
512 google/protobuf/util/internal/testdata/default_value.proto \
513 google/protobuf/util/internal/testdata/default_value_test.proto \
514 google/protobuf/util/internal/testdata/field_mask.proto \
515 google/protobuf/util/internal/testdata/maps.proto \
516 google/protobuf/util/internal/testdata/oneofs.proto \
Austin Schuh40c16522018-10-28 20:27:54 -0700517 google/protobuf/util/internal/testdata/proto3.proto \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500518 google/protobuf/util/internal/testdata/struct.proto \
519 google/protobuf/util/internal/testdata/timestamp_duration.proto \
Austin Schuh40c16522018-10-28 20:27:54 -0700520 google/protobuf/util/internal/testdata/wrappers.proto \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500521 google/protobuf/util/json_format_proto3.proto \
522 google/protobuf/util/message_differencer_unittest.proto \
523 google/protobuf/compiler/cpp/cpp_test_large_enum_value.proto
524
525EXTRA_DIST = \
526 $(protoc_inputs) \
Austin Schuh40c16522018-10-28 20:27:54 -0700527 $(js_well_known_types_sources) \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500528 solaris/libstdc++.la \
Austin Schuh40c16522018-10-28 20:27:54 -0700529 google/protobuf/unittest_proto3.proto \
530 google/protobuf/test_messages_proto3.proto \
531 google/protobuf/test_messages_proto2.proto \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500532 google/protobuf/io/gzip_stream.h \
533 google/protobuf/io/gzip_stream_unittest.sh \
534 google/protobuf/testdata/golden_message \
Austin Schuh40c16522018-10-28 20:27:54 -0700535 google/protobuf/testdata/golden_message_maps \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500536 google/protobuf/testdata/golden_message_oneof_implemented \
537 google/protobuf/testdata/golden_message_proto3 \
538 google/protobuf/testdata/golden_packed_fields_message \
539 google/protobuf/testdata/bad_utf8_string \
540 google/protobuf/testdata/map_test_data.txt \
541 google/protobuf/testdata/text_format_unittest_data.txt \
542 google/protobuf/testdata/text_format_unittest_data_oneof_implemented.txt \
543 google/protobuf/testdata/text_format_unittest_data_pointy.txt \
544 google/protobuf/testdata/text_format_unittest_data_pointy_oneof.txt \
545 google/protobuf/testdata/text_format_unittest_extensions_data.txt \
546 google/protobuf/testdata/text_format_unittest_extensions_data_pointy.txt \
547 google/protobuf/package_info.h \
548 google/protobuf/io/package_info.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700549 google/protobuf/util/package_info.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500550 google/protobuf/compiler/ruby/ruby_generated_code.proto \
Austin Schuh40c16522018-10-28 20:27:54 -0700551 google/protobuf/compiler/ruby/ruby_generated_code_pb.rb \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500552 google/protobuf/compiler/package_info.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700553 google/protobuf/compiler/zip_output_unittest.sh \
554 libprotobuf-lite.map \
555 libprotobuf.map \
556 libprotoc.map \
557 README.md
Brian Silverman9c614bc2016-02-15 20:20:02 -0500558
559protoc_lite_outputs = \
560 google/protobuf/map_lite_unittest.pb.cc \
561 google/protobuf/map_lite_unittest.pb.h \
562 google/protobuf/unittest_lite.pb.cc \
563 google/protobuf/unittest_lite.pb.h \
564 google/protobuf/unittest_no_arena_lite.pb.cc \
565 google/protobuf/unittest_no_arena_lite.pb.h \
566 google/protobuf/unittest_import_lite.pb.cc \
567 google/protobuf/unittest_import_lite.pb.h \
568 google/protobuf/unittest_import_public_lite.pb.cc \
569 google/protobuf/unittest_import_public_lite.pb.h
570
571protoc_outputs = \
572 $(protoc_lite_outputs) \
573 google/protobuf/any_test.pb.cc \
574 google/protobuf/any_test.pb.h \
575 google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.cc \
576 google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.h \
577 google/protobuf/compiler/cpp/cpp_test_large_enum_value.pb.cc \
578 google/protobuf/compiler/cpp/cpp_test_large_enum_value.pb.h \
579 google/protobuf/map_proto2_unittest.pb.cc \
580 google/protobuf/map_proto2_unittest.pb.h \
581 google/protobuf/map_unittest.pb.cc \
582 google/protobuf/map_unittest.pb.h \
583 google/protobuf/unittest_arena.pb.cc \
584 google/protobuf/unittest_arena.pb.h \
585 google/protobuf/unittest_custom_options.pb.cc \
586 google/protobuf/unittest_custom_options.pb.h \
587 google/protobuf/unittest_drop_unknown_fields.pb.cc \
588 google/protobuf/unittest_drop_unknown_fields.pb.h \
589 google/protobuf/unittest_embed_optimize_for.pb.cc \
590 google/protobuf/unittest_embed_optimize_for.pb.h \
591 google/protobuf/unittest_empty.pb.cc \
592 google/protobuf/unittest_empty.pb.h \
593 google/protobuf/unittest_enormous_descriptor.pb.cc \
594 google/protobuf/unittest_enormous_descriptor.pb.h \
595 google/protobuf/unittest_import.pb.cc \
596 google/protobuf/unittest_import.pb.h \
597 google/protobuf/unittest_import_public.pb.cc \
598 google/protobuf/unittest_import_public.pb.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700599 google/protobuf/unittest_lazy_dependencies.pb.cc \
600 google/protobuf/unittest_lazy_dependencies.pb.h \
601 google/protobuf/unittest_lazy_dependencies_custom_option.pb.cc \
602 google/protobuf/unittest_lazy_dependencies_custom_option.pb.h \
603 google/protobuf/unittest_lazy_dependencies_enum.pb.cc \
604 google/protobuf/unittest_lazy_dependencies_enum.pb.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500605 google/protobuf/unittest_lite_imports_nonlite.pb.cc \
606 google/protobuf/unittest_lite_imports_nonlite.pb.h \
607 google/protobuf/unittest_mset.pb.cc \
608 google/protobuf/unittest_mset.pb.h \
609 google/protobuf/unittest_mset_wire_format.pb.cc \
610 google/protobuf/unittest_mset_wire_format.pb.h \
611 google/protobuf/unittest_no_arena_import.pb.cc \
612 google/protobuf/unittest_no_arena_import.pb.h \
613 google/protobuf/unittest_no_arena.pb.cc \
614 google/protobuf/unittest_no_arena.pb.h \
615 google/protobuf/unittest_no_field_presence.pb.cc \
616 google/protobuf/unittest_no_field_presence.pb.h \
617 google/protobuf/unittest_no_generic_services.pb.cc \
618 google/protobuf/unittest_no_generic_services.pb.h \
619 google/protobuf/unittest_optimize_for.pb.cc \
620 google/protobuf/unittest_optimize_for.pb.h \
621 google/protobuf/unittest.pb.cc \
622 google/protobuf/unittest.pb.h \
623 google/protobuf/unittest_preserve_unknown_enum2.pb.cc \
624 google/protobuf/unittest_preserve_unknown_enum2.pb.h \
625 google/protobuf/unittest_preserve_unknown_enum.pb.cc \
626 google/protobuf/unittest_preserve_unknown_enum.pb.h \
627 google/protobuf/unittest_proto3_arena.pb.cc \
628 google/protobuf/unittest_proto3_arena.pb.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700629 google/protobuf/unittest_proto3_arena_lite.pb.cc \
630 google/protobuf/unittest_proto3_arena_lite.pb.h \
631 google/protobuf/unittest_proto3_lite.pb.cc \
632 google/protobuf/unittest_proto3_lite.pb.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500633 google/protobuf/unittest_well_known_types.pb.cc \
634 google/protobuf/unittest_well_known_types.pb.h \
635 google/protobuf/util/internal/testdata/anys.pb.cc \
636 google/protobuf/util/internal/testdata/anys.pb.h \
637 google/protobuf/util/internal/testdata/books.pb.cc \
638 google/protobuf/util/internal/testdata/books.pb.h \
639 google/protobuf/util/internal/testdata/default_value.pb.cc \
640 google/protobuf/util/internal/testdata/default_value.pb.h \
641 google/protobuf/util/internal/testdata/default_value_test.pb.cc \
642 google/protobuf/util/internal/testdata/default_value_test.pb.h \
643 google/protobuf/util/internal/testdata/field_mask.pb.cc \
644 google/protobuf/util/internal/testdata/field_mask.pb.h \
645 google/protobuf/util/internal/testdata/maps.pb.cc \
646 google/protobuf/util/internal/testdata/maps.pb.h \
647 google/protobuf/util/internal/testdata/oneofs.pb.cc \
648 google/protobuf/util/internal/testdata/oneofs.pb.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700649 google/protobuf/util/internal/testdata/proto3.pb.cc \
650 google/protobuf/util/internal/testdata/proto3.pb.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500651 google/protobuf/util/internal/testdata/struct.pb.cc \
652 google/protobuf/util/internal/testdata/struct.pb.h \
653 google/protobuf/util/internal/testdata/timestamp_duration.pb.cc \
654 google/protobuf/util/internal/testdata/timestamp_duration.pb.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700655 google/protobuf/util/internal/testdata/wrappers.pb.cc \
656 google/protobuf/util/internal/testdata/wrappers.pb.h \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500657 google/protobuf/util/json_format_proto3.pb.cc \
658 google/protobuf/util/json_format_proto3.pb.h \
659 google/protobuf/util/message_differencer_unittest.pb.cc \
660 google/protobuf/util/message_differencer_unittest.pb.h
661
Brian Silverman9c614bc2016-02-15 20:20:02 -0500662if USE_EXTERNAL_PROTOC
663
664unittest_proto_middleman: $(protoc_inputs)
665 $(PROTOC) -I$(srcdir) --cpp_out=. $^
666 touch unittest_proto_middleman
667
668else
669
670# We have to cd to $(srcdir) before executing protoc because $(protoc_inputs) is
671# relative to srcdir, which may not be the same as the current directory when
672# building out-of-tree.
673unittest_proto_middleman: protoc$(EXEEXT) $(protoc_inputs)
674 oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/protoc$(EXEEXT) -I. --cpp_out=$$oldpwd $(protoc_inputs) )
675 touch unittest_proto_middleman
676
677endif
678
679$(protoc_outputs): unittest_proto_middleman
680
681COMMON_TEST_SOURCES = \
682 google/protobuf/arena_test_util.cc \
683 google/protobuf/arena_test_util.h \
684 google/protobuf/map_test_util.cc \
685 google/protobuf/map_test_util.h \
686 google/protobuf/map_test_util_impl.h \
687 google/protobuf/test_util.cc \
688 google/protobuf/test_util.h \
Austin Schuh40c16522018-10-28 20:27:54 -0700689 google/protobuf/test_util.inc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500690 google/protobuf/testing/googletest.cc \
691 google/protobuf/testing/googletest.h \
692 google/protobuf/testing/file.cc \
693 google/protobuf/testing/file.h
694
Austin Schuh40c16522018-10-28 20:27:54 -0700695GOOGLETEST_BUILD_DIR=../third_party/googletest/googletest
696GOOGLEMOCK_BUILD_DIR=../third_party/googletest/googlemock
697GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
698GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
Brian Silverman9c614bc2016-02-15 20:20:02 -0500699check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
700 protobuf-lite-test test_plugin protobuf-lite-arena-test \
Austin Schuh40c16522018-10-28 20:27:54 -0700701 no-warning-test $(GZCHECKPROGRAMS)
Brian Silverman9c614bc2016-02-15 20:20:02 -0500702protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
Austin Schuh40c16522018-10-28 20:27:54 -0700703 $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
704 $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
705 $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
706protobuf_test_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include \
707 -I$(GOOGLEMOCK_SRC_DIR)/include
Brian Silverman9c614bc2016-02-15 20:20:02 -0500708# Disable optimization for tests unless the user explicitly asked for it,
709# since test_util.cc takes forever to compile with optimization (with GCC).
710# See configure.ac for more info.
711protobuf_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
712protobuf_test_SOURCES = \
713 google/protobuf/stubs/bytestream_unittest.cc \
714 google/protobuf/stubs/common_unittest.cc \
715 google/protobuf/stubs/int128_unittest.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700716 google/protobuf/stubs/io_win32_unittest.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500717 google/protobuf/stubs/statusor_test.cc \
718 google/protobuf/stubs/status_test.cc \
719 google/protobuf/stubs/stringpiece_unittest.cc \
720 google/protobuf/stubs/stringprintf_unittest.cc \
721 google/protobuf/stubs/structurally_valid_unittest.cc \
722 google/protobuf/stubs/strutil_unittest.cc \
723 google/protobuf/stubs/template_util_unittest.cc \
724 google/protobuf/stubs/time_test.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500725 google/protobuf/any_test.cc \
726 google/protobuf/arenastring_unittest.cc \
727 google/protobuf/arena_unittest.cc \
728 google/protobuf/descriptor_database_unittest.cc \
729 google/protobuf/descriptor_unittest.cc \
730 google/protobuf/drop_unknown_fields_test.cc \
731 google/protobuf/dynamic_message_unittest.cc \
732 google/protobuf/extension_set_unittest.cc \
733 google/protobuf/generated_message_reflection_unittest.cc \
734 google/protobuf/map_field_test.cc \
735 google/protobuf/map_test.cc \
736 google/protobuf/message_unittest.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700737 google/protobuf/message_unittest.inc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500738 google/protobuf/no_field_presence_test.cc \
739 google/protobuf/preserve_unknown_enum_test.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700740 google/protobuf/proto3_arena_lite_unittest.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500741 google/protobuf/proto3_arena_unittest.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700742 google/protobuf/proto3_lite_unittest.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500743 google/protobuf/reflection_ops_unittest.cc \
744 google/protobuf/repeated_field_reflection_unittest.cc \
745 google/protobuf/repeated_field_unittest.cc \
746 google/protobuf/text_format_unittest.cc \
747 google/protobuf/unknown_field_set_unittest.cc \
748 google/protobuf/well_known_types_unittest.cc \
749 google/protobuf/wire_format_unittest.cc \
750 google/protobuf/io/coded_stream_unittest.cc \
751 google/protobuf/io/printer_unittest.cc \
752 google/protobuf/io/tokenizer_unittest.cc \
753 google/protobuf/io/zero_copy_stream_unittest.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700754 google/protobuf/compiler/annotation_test_util.h \
755 google/protobuf/compiler/annotation_test_util.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500756 google/protobuf/compiler/command_line_interface_unittest.cc \
757 google/protobuf/compiler/importer_unittest.cc \
758 google/protobuf/compiler/mock_code_generator.cc \
759 google/protobuf/compiler/mock_code_generator.h \
760 google/protobuf/compiler/parser_unittest.cc \
761 google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700762 google/protobuf/compiler/cpp/cpp_move_unittest.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500763 google/protobuf/compiler/cpp/cpp_unittest.h \
764 google/protobuf/compiler/cpp/cpp_unittest.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700765 google/protobuf/compiler/cpp/cpp_unittest.inc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500766 google/protobuf/compiler/cpp/cpp_plugin_unittest.cc \
767 google/protobuf/compiler/cpp/metadata_test.cc \
768 google/protobuf/compiler/java/java_plugin_unittest.cc \
769 google/protobuf/compiler/java/java_doc_comment_unittest.cc \
770 google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc \
771 google/protobuf/compiler/python/python_plugin_unittest.cc \
772 google/protobuf/compiler/ruby/ruby_generator_unittest.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700773 google/protobuf/compiler/csharp/csharp_bootstrap_unittest.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500774 google/protobuf/compiler/csharp/csharp_generator_unittest.cc \
Austin Schuh40c16522018-10-28 20:27:54 -0700775 google/protobuf/util/delimited_message_util_test.cc \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500776 google/protobuf/util/field_comparator_test.cc \
777 google/protobuf/util/field_mask_util_test.cc \
778 google/protobuf/util/internal/default_value_objectwriter_test.cc \
779 google/protobuf/util/internal/json_objectwriter_test.cc \
780 google/protobuf/util/internal/json_stream_parser_test.cc \
781 google/protobuf/util/internal/protostream_objectsource_test.cc \
782 google/protobuf/util/internal/protostream_objectwriter_test.cc \
783 google/protobuf/util/internal/type_info_test_helper.cc \
784 google/protobuf/util/json_util_test.cc \
785 google/protobuf/util/message_differencer_unittest.cc \
786 google/protobuf/util/time_util_test.cc \
787 google/protobuf/util/type_resolver_util_test.cc \
788 $(COMMON_TEST_SOURCES)
Brian Silverman9c614bc2016-02-15 20:20:02 -0500789nodist_protobuf_test_SOURCES = $(protoc_outputs)
Austin Schuh40c16522018-10-28 20:27:54 -0700790$(am_protobuf_test_OBJECTS): unittest_proto_middleman
Brian Silverman9c614bc2016-02-15 20:20:02 -0500791
792# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
793protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
794 libprotoc.la \
Austin Schuh40c16522018-10-28 20:27:54 -0700795 $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
796 $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
797 $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
798protobuf_lazy_descriptor_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
799 -I$(GOOGLETEST_SRC_DIR)/include \
Brian Silverman9c614bc2016-02-15 20:20:02 -0500800 -DPROTOBUF_TEST_NO_DESCRIPTORS
801protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
802protobuf_lazy_descriptor_test_SOURCES = \
803 google/protobuf/compiler/cpp/cpp_unittest.cc \
804 $(COMMON_TEST_SOURCES)
805nodist_protobuf_lazy_descriptor_test_SOURCES = $(protoc_outputs)
Austin Schuh40c16522018-10-28 20:27:54 -0700806$(am_protobuf_lazy_descriptor_test_OBJECTS): unittest_proto_middleman
Brian Silverman9c614bc2016-02-15 20:20:02 -0500807
808COMMON_LITE_TEST_SOURCES = \
809 google/protobuf/arena_test_util.cc \
810 google/protobuf/arena_test_util.h \
811 google/protobuf/map_lite_test_util.cc \
812 google/protobuf/map_lite_test_util.h \
813 google/protobuf/test_util_lite.cc \
814 google/protobuf/test_util_lite.h
815
816# Build lite_unittest separately, since it doesn't use gtest. It can't
817# depend on gtest because our internal version of gtest depend on proto
818# full runtime and we want to make sure this test builds without full
819# runtime.
Austin Schuh40c16522018-10-28 20:27:54 -0700820protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
821 $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
822 $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
823 $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
824protobuf_lite_test_CPPFLAGS= -I$(GOOGLEMOCK_SRC_DIR)/include \
825 -I$(GOOGLETEST_SRC_DIR)/include
Brian Silverman9c614bc2016-02-15 20:20:02 -0500826protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
827protobuf_lite_test_SOURCES = \
828 google/protobuf/lite_unittest.cc \
829 $(COMMON_LITE_TEST_SOURCES)
830nodist_protobuf_lite_test_SOURCES = $(protoc_lite_outputs)
Austin Schuh40c16522018-10-28 20:27:54 -0700831$(am_protobuf_lite_test_OBJECTS): unittest_proto_middleman
Brian Silverman9c614bc2016-02-15 20:20:02 -0500832
833# lite_arena_unittest depends on gtest because teboring@ found that without
834# gtest when building the test internally our memory sanitizer doesn't detect
835# memory leaks (don't know why).
836protobuf_lite_arena_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
Austin Schuh40c16522018-10-28 20:27:54 -0700837 $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
838 $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
839 $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
840protobuf_lite_arena_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
841 -I$(GOOGLETEST_SRC_DIR)/include
Brian Silverman9c614bc2016-02-15 20:20:02 -0500842protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
843protobuf_lite_arena_test_SOURCES = \
844 google/protobuf/lite_arena_unittest.cc \
845 $(COMMON_LITE_TEST_SOURCES)
846nodist_protobuf_lite_arena_test_SOURCES = $(protoc_lite_outputs)
Austin Schuh40c16522018-10-28 20:27:54 -0700847$(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman
Brian Silverman9c614bc2016-02-15 20:20:02 -0500848
849# Test plugin binary.
850test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
Austin Schuh40c16522018-10-28 20:27:54 -0700851 $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
852test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
Brian Silverman9c614bc2016-02-15 20:20:02 -0500853test_plugin_SOURCES = \
854 google/protobuf/compiler/mock_code_generator.cc \
855 google/protobuf/testing/file.cc \
856 google/protobuf/testing/file.h \
857 google/protobuf/compiler/test_plugin.cc
858
859if HAVE_ZLIB
860zcgzip_LDADD = $(PTHREAD_LIBS) libprotobuf.la
861zcgzip_SOURCES = google/protobuf/testing/zcgzip.cc
862
863zcgunzip_LDADD = $(PTHREAD_LIBS) libprotobuf.la
864zcgunzip_SOURCES = google/protobuf/testing/zcgunzip.cc
865endif
866
Austin Schuh40c16522018-10-28 20:27:54 -0700867# This test target is to ensure all our public header files and generated
868# code is free from warnings. We have to be more pedantic about these
869# files because they are compiled by users with different compiler flags.
870no_warning_test.cc:
871 echo "// Generated from Makefile.am" > no_warning_test.cc
872 for FILE in $(nobase_include_HEADERS); do \
873 echo "#include <$${FILE}>" >> no_warning_test.cc; \
874 done
875 echo "int main(int, char**) { return 0; }" >> no_warning_test.cc
876
877no_warning_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la
878no_warning_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF) \
879 -Wall -Wextra -Werror -Wno-unused-parameter
880nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs)
881
Brian Silverman9c614bc2016-02-15 20:20:02 -0500882TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \
883 google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) \
Austin Schuh40c16522018-10-28 20:27:54 -0700884 protobuf-lite-arena-test no-warning-test