Makefile.am 52.3 KB
Newer Older
temporal's avatar
temporal committed
1 2
## Process this file with automake to produce Makefile.in

3 4 5 6
if HAVE_ZLIB
GZCHECKPROGRAMS = zcgzip zcgunzip
GZHEADERS = google/protobuf/io/gzip_stream.h
GZTESTS = google/protobuf/io/gzip_stream_unittest.sh
7
ZLIB_DEF = -DHAVE_ZLIB=1
8 9 10 11
else
GZCHECKPROGRAMS =
GZHEADERS =
GZTESTS =
12 13 14 15 16 17 18
ZLIB_DEF =
endif

if HAVE_PTHREAD
PTHREAD_DEF = -DHAVE_PTHREAD=1
else
PTHREAD_DEF =
19 20
endif

temporal's avatar
temporal committed
21
if GCC
22 23 24
# Turn on all warnings except for sign comparison (we ignore sign comparison
# in Google so our code base have tons of such warnings).
NO_OPT_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF) -Wall -Wno-sign-compare
temporal's avatar
temporal committed
25
else
26
NO_OPT_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF)
temporal's avatar
temporal committed
27 28
endif

29 30
AM_CXXFLAGS = $(NO_OPT_CXXFLAGS) $(PROTOBUF_OPT_FLAG)

temporal's avatar
temporal committed
31 32 33 34 35
AM_LDFLAGS = $(PTHREAD_CFLAGS)

# If I say "dist_include_DATA", automake complains that $(includedir) is not
# a "legitimate" directory for DATA.  Screw you, automake.
protodir = $(includedir)
36 37 38 39

# If you are adding new files here, also remember to change the build files for
# all other languages, //protoc-artifacts/build-zip.sh and run
# //update_file_list.sh for bazel.
40 41 42 43 44 45 46 47 48 49 50
nobase_dist_proto_DATA = google/protobuf/descriptor.proto      \
                         google/protobuf/any.proto             \
                         google/protobuf/api.proto             \
                         google/protobuf/duration.proto        \
                         google/protobuf/empty.proto           \
                         google/protobuf/field_mask.proto      \
                         google/protobuf/source_context.proto  \
                         google/protobuf/struct.proto          \
                         google/protobuf/timestamp.proto       \
                         google/protobuf/type.proto            \
                         google/protobuf/wrappers.proto        \
51
                         google/protobuf/compiler/plugin.proto
temporal's avatar
temporal committed
52 53 54 55 56

# Not sure why these don't get cleaned automatically.
clean-local:
	rm -f *.loT

57
CLEANFILES = $(protoc_outputs) unittest_proto_middleman \
58
             testzip.jar testzip.list testzip.proto testzip.zip \
59
             no_warning_test.cc
temporal's avatar
temporal committed
60 61 62 63

MAINTAINERCLEANFILES =   \
  Makefile.in

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
nobase_include_HEADERS =                                         \
  google/protobuf/stubs/callback.h                               \
  google/protobuf/stubs/bytestream.h                             \
  google/protobuf/stubs/casts.h                                  \
  google/protobuf/stubs/common.h                                 \
  google/protobuf/stubs/fastmem.h                                \
  google/protobuf/stubs/hash.h                                   \
  google/protobuf/stubs/logging.h                                \
  google/protobuf/stubs/macros.h                                 \
  google/protobuf/stubs/mutex.h                                  \
  google/protobuf/stubs/once.h                                   \
  google/protobuf/stubs/platform_macros.h                        \
  google/protobuf/stubs/port.h                                   \
  google/protobuf/stubs/singleton.h                              \
  google/protobuf/stubs/status.h                                 \
  google/protobuf/stubs/stl_util.h                               \
  google/protobuf/stubs/stringpiece.h                            \
  google/protobuf/stubs/template_util.h                          \
  google/protobuf/any.pb.h                                       \
  google/protobuf/api.pb.h                                       \
  google/protobuf/any.h                                          \
  google/protobuf/arena.h                                        \
Jisi Liu's avatar
Jisi Liu committed
86
  google/protobuf/arena_impl.h                                   \
87 88 89 90 91 92 93 94 95 96 97 98
  google/protobuf/arenastring.h                                  \
  google/protobuf/descriptor_database.h                          \
  google/protobuf/descriptor.h                                   \
  google/protobuf/descriptor.pb.h                                \
  google/protobuf/duration.pb.h                                  \
  google/protobuf/dynamic_message.h                              \
  google/protobuf/empty.pb.h                                     \
  google/protobuf/extension_set.h                                \
  google/protobuf/field_mask.pb.h                                \
  google/protobuf/generated_enum_reflection.h                    \
  google/protobuf/generated_enum_util.h                          \
  google/protobuf/generated_message_reflection.h                 \
Feng Xiao's avatar
Feng Xiao committed
99
  google/protobuf/generated_message_table_driven.h               \
100 101
  google/protobuf/generated_message_util.h                       \
  google/protobuf/has_bits.h                                     \
102
  google/protobuf/implicit_weak_message.h                        \
103
  google/protobuf/inlined_string_field.h                         \
104 105 106 107 108 109 110 111 112 113
  google/protobuf/map_entry.h                                    \
  google/protobuf/map_entry_lite.h                               \
  google/protobuf/map_field.h                                    \
  google/protobuf/map_field_inl.h                                \
  google/protobuf/map_field_lite.h                               \
  google/protobuf/map.h                                          \
  google/protobuf/map_type_handler.h                             \
  google/protobuf/message.h                                      \
  google/protobuf/message_lite.h                                 \
  google/protobuf/metadata.h                                     \
Feng Xiao's avatar
Feng Xiao committed
114
  google/protobuf/metadata_lite.h                                \
Feng Xiao's avatar
Feng Xiao committed
115 116 117
  google/protobuf/port.h                                         \
  google/protobuf/port_def.inc                                   \
  google/protobuf/port_undef.inc                                 \
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
  google/protobuf/reflection.h                                   \
  google/protobuf/reflection_ops.h                               \
  google/protobuf/repeated_field.h                               \
  google/protobuf/service.h                                      \
  google/protobuf/source_context.pb.h                            \
  google/protobuf/struct.pb.h                                    \
  google/protobuf/text_format.h                                  \
  google/protobuf/timestamp.pb.h                                 \
  google/protobuf/type.pb.h                                      \
  google/protobuf/unknown_field_set.h                            \
  google/protobuf/wire_format.h                                  \
  google/protobuf/wire_format_lite.h                             \
  google/protobuf/wire_format_lite_inl.h                         \
  google/protobuf/wrappers.pb.h                                  \
  google/protobuf/io/coded_stream.h                              \
  $(GZHEADERS)                                                   \
  google/protobuf/io/printer.h                                   \
  google/protobuf/io/strtod.h                                    \
  google/protobuf/io/tokenizer.h                                 \
  google/protobuf/io/zero_copy_stream.h                          \
  google/protobuf/io/zero_copy_stream_impl.h                     \
  google/protobuf/io/zero_copy_stream_impl_lite.h                \
  google/protobuf/compiler/code_generator.h                      \
  google/protobuf/compiler/command_line_interface.h              \
  google/protobuf/compiler/importer.h                            \
  google/protobuf/compiler/parser.h                              \
  google/protobuf/compiler/plugin.h                              \
  google/protobuf/compiler/plugin.pb.h                           \
  google/protobuf/compiler/cpp/cpp_generator.h                   \
  google/protobuf/compiler/csharp/csharp_generator.h             \
  google/protobuf/compiler/csharp/csharp_names.h                 \
  google/protobuf/compiler/java/java_generator.h                 \
  google/protobuf/compiler/java/java_names.h                     \
  google/protobuf/compiler/js/js_generator.h                     \
152
  google/protobuf/compiler/js/well_known_types_embed.h           \
153 154 155 156 157 158
  google/protobuf/compiler/objectivec/objectivec_generator.h     \
  google/protobuf/compiler/objectivec/objectivec_helpers.h       \
  google/protobuf/compiler/php/php_generator.h                   \
  google/protobuf/compiler/python/python_generator.h             \
  google/protobuf/compiler/ruby/ruby_generator.h                 \
  google/protobuf/util/type_resolver.h                           \
159
  google/protobuf/util/delimited_message_util.h                  \
160 161 162 163 164
  google/protobuf/util/field_comparator.h                        \
  google/protobuf/util/field_mask_util.h                         \
  google/protobuf/util/json_util.h                               \
  google/protobuf/util/time_util.h                               \
  google/protobuf/util/type_resolver_util.h                      \
165
  google/protobuf/util/message_differencer.h
temporal's avatar
temporal committed
166

167
lib_LTLIBRARIES = libprotobuf-lite.la libprotobuf.la libprotoc.la
temporal's avatar
temporal committed
168

169
libprotobuf_lite_la_LIBADD = $(PTHREAD_LIBS)
170
libprotobuf_lite_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined
171 172 173 174
if HAVE_LD_VERSION_SCRIPT
libprotobuf_lite_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf-lite.map
EXTRA_libprotobuf_lite_la_DEPENDENCIES = libprotobuf-lite.map
endif
175
libprotobuf_lite_la_SOURCES =                                  \
176 177
  google/protobuf/stubs/bytestream.cc                          \
  google/protobuf/stubs/bytestream.h                           \
temporal's avatar
temporal committed
178 179
  google/protobuf/stubs/common.cc                              \
  google/protobuf/stubs/hash.h                                 \
180 181
  google/protobuf/stubs/int128.cc                              \
  google/protobuf/stubs/int128.h                               \
Jisi Liu's avatar
Jisi Liu committed
182 183
  google/protobuf/stubs/io_win32.cc                            \
  google/protobuf/stubs/io_win32.h                             \
184
  google/protobuf/stubs/map_util.h                             \
185 186 187 188 189 190 191 192
  google/protobuf/stubs/mathutil.h                             \
  google/protobuf/stubs/status.cc                              \
  google/protobuf/stubs/status.h                               \
  google/protobuf/stubs/status_macros.h                        \
  google/protobuf/stubs/statusor.cc                            \
  google/protobuf/stubs/statusor.h                             \
  google/protobuf/stubs/stringpiece.cc                         \
  google/protobuf/stubs/stringpiece.h                          \
193 194
  google/protobuf/stubs/stringprintf.cc                        \
  google/protobuf/stubs/stringprintf.h                         \
195
  google/protobuf/stubs/structurally_valid.cc                  \
Feng Xiao's avatar
Feng Xiao committed
196 197
  google/protobuf/stubs/strutil.cc                             \
  google/protobuf/stubs/strutil.h                              \
198 199
  google/protobuf/stubs/time.cc                                \
  google/protobuf/stubs/time.h                                 \
200 201
  google/protobuf/arena.cc                                     \
  google/protobuf/arenastring.cc                               \
202 203
  google/protobuf/extension_set.cc                             \
  google/protobuf/generated_message_util.cc                    \
Jisi Liu's avatar
Jisi Liu committed
204 205
  google/protobuf/generated_message_table_driven_lite.h        \
  google/protobuf/generated_message_table_driven_lite.cc       \
206
  google/protobuf/implicit_weak_message.cc                     \
207 208 209 210
  google/protobuf/message_lite.cc                              \
  google/protobuf/repeated_field.cc                            \
  google/protobuf/wire_format_lite.cc                          \
  google/protobuf/io/coded_stream.cc                           \
211
  google/protobuf/io/coded_stream_inl.h                        \
212
  google/protobuf/io/zero_copy_stream.cc                       \
213
  google/protobuf/io/zero_copy_stream_impl_lite.cc
214 215

libprotobuf_la_LIBADD = $(PTHREAD_LIBS)
216
libprotobuf_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined
217 218 219 220
if HAVE_LD_VERSION_SCRIPT
libprotobuf_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf.map
EXTRA_libprotobuf_la_DEPENDENCIES = libprotobuf.map
endif
221 222
libprotobuf_la_SOURCES =                                       \
  $(libprotobuf_lite_la_SOURCES)                               \
223 224
  google/protobuf/any.pb.cc                                    \
  google/protobuf/api.pb.cc                                    \
225
  google/protobuf/stubs/mathlimits.cc                          \
226
  google/protobuf/stubs/mathlimits.h                           \
227
  google/protobuf/any.cc                                       \
temporal's avatar
temporal committed
228 229
  google/protobuf/descriptor.cc                                \
  google/protobuf/descriptor_database.cc                       \
230
  google/protobuf/descriptor.pb.cc                             \
231
  google/protobuf/duration.pb.cc                               \
temporal's avatar
temporal committed
232
  google/protobuf/dynamic_message.cc                           \
233
  google/protobuf/empty.pb.cc                                  \
234
  google/protobuf/extension_set_heavy.cc                       \
235
  google/protobuf/field_mask.pb.cc                             \
temporal's avatar
temporal committed
236
  google/protobuf/generated_message_reflection.cc              \
Jisi Liu's avatar
Jisi Liu committed
237
  google/protobuf/generated_message_table_driven_lite.h        \
Jisi Liu's avatar
Jisi Liu committed
238
  google/protobuf/generated_message_table_driven.cc            \
239
  google/protobuf/map_field.cc                                 \
temporal's avatar
temporal committed
240
  google/protobuf/message.cc                                   \
241
  google/protobuf/reflection_internal.h                        \
temporal's avatar
temporal committed
242 243
  google/protobuf/reflection_ops.cc                            \
  google/protobuf/service.cc                                   \
244 245 246 247
  google/protobuf/source_context.pb.cc                         \
  google/protobuf/struct.pb.cc                                 \
  google/protobuf/stubs/substitute.cc                          \
  google/protobuf/stubs/substitute.h                           \
temporal's avatar
temporal committed
248
  google/protobuf/text_format.cc                               \
249 250
  google/protobuf/timestamp.pb.cc                              \
  google/protobuf/type.pb.cc                                   \
temporal's avatar
temporal committed
251 252
  google/protobuf/unknown_field_set.cc                         \
  google/protobuf/wire_format.cc                               \
253
  google/protobuf/wrappers.pb.cc                               \
254
  google/protobuf/io/gzip_stream.cc                            \
temporal's avatar
temporal committed
255
  google/protobuf/io/printer.cc                                \
256
  google/protobuf/io/strtod.cc                                 \
temporal's avatar
temporal committed
257 258 259
  google/protobuf/io/tokenizer.cc                              \
  google/protobuf/io/zero_copy_stream_impl.cc                  \
  google/protobuf/compiler/importer.cc                         \
260
  google/protobuf/compiler/parser.cc                           \
261
  google/protobuf/util/delimited_message_util.cc               \
262
  google/protobuf/util/field_comparator.cc                     \
263
  google/protobuf/util/field_mask_util.cc                      \
264 265 266 267 268 269 270
  google/protobuf/util/internal/constants.h                    \
  google/protobuf/util/internal/datapiece.cc                   \
  google/protobuf/util/internal/datapiece.h                    \
  google/protobuf/util/internal/default_value_objectwriter.cc  \
  google/protobuf/util/internal/default_value_objectwriter.h   \
  google/protobuf/util/internal/error_listener.cc              \
  google/protobuf/util/internal/error_listener.h               \
Feng Xiao's avatar
Feng Xiao committed
271
  google/protobuf/util/internal/expecting_objectwriter.h       \
272 273 274 275 276 277 278 279 280
  google/protobuf/util/internal/field_mask_utility.cc          \
  google/protobuf/util/internal/field_mask_utility.h           \
  google/protobuf/util/internal/json_escaping.cc               \
  google/protobuf/util/internal/json_escaping.h                \
  google/protobuf/util/internal/json_objectwriter.cc           \
  google/protobuf/util/internal/json_objectwriter.h            \
  google/protobuf/util/internal/json_stream_parser.cc          \
  google/protobuf/util/internal/json_stream_parser.h           \
  google/protobuf/util/internal/location_tracker.h             \
Feng Xiao's avatar
Feng Xiao committed
281 282
  google/protobuf/util/internal/mock_error_listener.h          \
  google/protobuf/util/internal/object_location_tracker.h      \
283 284 285 286 287 288 289
  google/protobuf/util/internal/object_source.h                \
  google/protobuf/util/internal/object_writer.cc               \
  google/protobuf/util/internal/object_writer.h                \
  google/protobuf/util/internal/protostream_objectsource.cc    \
  google/protobuf/util/internal/protostream_objectsource.h     \
  google/protobuf/util/internal/protostream_objectwriter.cc    \
  google/protobuf/util/internal/protostream_objectwriter.h     \
290 291
  google/protobuf/util/internal/proto_writer.cc                \
  google/protobuf/util/internal/proto_writer.h                 \
Feng Xiao's avatar
Feng Xiao committed
292
  google/protobuf/util/internal/structured_objectwriter.h      \
293 294
  google/protobuf/util/internal/type_info.cc                   \
  google/protobuf/util/internal/type_info.h                    \
Feng Xiao's avatar
Feng Xiao committed
295 296
  google/protobuf/util/internal/type_info_test_helper.cc       \
  google/protobuf/util/internal/type_info_test_helper.h        \
297 298 299
  google/protobuf/util/internal/utility.cc                     \
  google/protobuf/util/internal/utility.h                      \
  google/protobuf/util/json_util.cc                            \
300 301 302 303
  google/protobuf/util/message_differencer.cc                  \
  google/protobuf/util/time_util.cc                            \
  google/protobuf/util/type_resolver_util.cc

304
nodist_libprotobuf_la_SOURCES = $(nodist_libprotobuf_lite_la_SOURCES)
temporal's avatar
temporal committed
305 306

libprotoc_la_LIBADD = $(PTHREAD_LIBS) libprotobuf.la
307
libprotoc_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined
308 309 310 311
if HAVE_LD_VERSION_SCRIPT
libprotoc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotoc.map
EXTRA_libprotoc_la_DEPENDENCIES = libprotoc.map
endif
temporal's avatar
temporal committed
312 313 314
libprotoc_la_SOURCES =                                         \
  google/protobuf/compiler/code_generator.cc                   \
  google/protobuf/compiler/command_line_interface.cc           \
315 316
  google/protobuf/compiler/plugin.cc                           \
  google/protobuf/compiler/plugin.pb.cc                        \
317 318
  google/protobuf/compiler/scc.cc                              \
  google/protobuf/compiler/scc.h                               \
319 320
  google/protobuf/compiler/subprocess.cc                       \
  google/protobuf/compiler/subprocess.h                        \
321 322
  google/protobuf/compiler/zip_writer.cc                       \
  google/protobuf/compiler/zip_writer.h                        \
temporal's avatar
temporal committed
323 324 325 326 327 328 329 330 331 332 333 334 335
  google/protobuf/compiler/cpp/cpp_enum.cc                     \
  google/protobuf/compiler/cpp/cpp_enum.h                      \
  google/protobuf/compiler/cpp/cpp_enum_field.cc               \
  google/protobuf/compiler/cpp/cpp_enum_field.h                \
  google/protobuf/compiler/cpp/cpp_extension.cc                \
  google/protobuf/compiler/cpp/cpp_extension.h                 \
  google/protobuf/compiler/cpp/cpp_field.cc                    \
  google/protobuf/compiler/cpp/cpp_field.h                     \
  google/protobuf/compiler/cpp/cpp_file.cc                     \
  google/protobuf/compiler/cpp/cpp_file.h                      \
  google/protobuf/compiler/cpp/cpp_generator.cc                \
  google/protobuf/compiler/cpp/cpp_helpers.cc                  \
  google/protobuf/compiler/cpp/cpp_helpers.h                   \
336 337
  google/protobuf/compiler/cpp/cpp_map_field.cc                \
  google/protobuf/compiler/cpp/cpp_map_field.h                 \
temporal's avatar
temporal committed
338 339 340 341
  google/protobuf/compiler/cpp/cpp_message.cc                  \
  google/protobuf/compiler/cpp/cpp_message.h                   \
  google/protobuf/compiler/cpp/cpp_message_field.cc            \
  google/protobuf/compiler/cpp/cpp_message_field.h             \
342
  google/protobuf/compiler/cpp/cpp_message_layout_helper.h     \
343
  google/protobuf/compiler/cpp/cpp_options.h                   \
344 345
  google/protobuf/compiler/cpp/cpp_padding_optimizer.cc        \
  google/protobuf/compiler/cpp/cpp_padding_optimizer.h         \
temporal's avatar
temporal committed
346 347 348 349 350 351
  google/protobuf/compiler/cpp/cpp_primitive_field.cc          \
  google/protobuf/compiler/cpp/cpp_primitive_field.h           \
  google/protobuf/compiler/cpp/cpp_service.cc                  \
  google/protobuf/compiler/cpp/cpp_service.h                   \
  google/protobuf/compiler/cpp/cpp_string_field.cc             \
  google/protobuf/compiler/cpp/cpp_string_field.h              \
352 353
  google/protobuf/compiler/java/java_context.cc                \
  google/protobuf/compiler/java/java_context.h                 \
temporal's avatar
temporal committed
354
  google/protobuf/compiler/java/java_enum.cc                   \
355
  google/protobuf/compiler/java/java_enum_lite.cc              \
temporal's avatar
temporal committed
356 357
  google/protobuf/compiler/java/java_enum_field.cc             \
  google/protobuf/compiler/java/java_enum_field.h              \
358 359
  google/protobuf/compiler/java/java_enum_field_lite.cc        \
  google/protobuf/compiler/java/java_enum_field_lite.h         \
360
  google/protobuf/compiler/java/java_enum.h                    \
361
  google/protobuf/compiler/java/java_enum_lite.h               \
temporal's avatar
temporal committed
362 363
  google/protobuf/compiler/java/java_extension.cc              \
  google/protobuf/compiler/java/java_extension.h               \
364 365
  google/protobuf/compiler/java/java_extension_lite.cc         \
  google/protobuf/compiler/java/java_extension_lite.h          \
temporal's avatar
temporal committed
366 367 368 369 370
  google/protobuf/compiler/java/java_field.cc                  \
  google/protobuf/compiler/java/java_field.h                   \
  google/protobuf/compiler/java/java_file.cc                   \
  google/protobuf/compiler/java/java_file.h                    \
  google/protobuf/compiler/java/java_generator.cc              \
371 372
  google/protobuf/compiler/java/java_generator_factory.cc      \
  google/protobuf/compiler/java/java_generator_factory.h       \
temporal's avatar
temporal committed
373 374
  google/protobuf/compiler/java/java_helpers.cc                \
  google/protobuf/compiler/java/java_helpers.h                 \
375 376
  google/protobuf/compiler/java/java_map_field.cc              \
  google/protobuf/compiler/java/java_map_field.h               \
377 378
  google/protobuf/compiler/java/java_map_field_lite.cc         \
  google/protobuf/compiler/java/java_map_field_lite.h          \
temporal's avatar
temporal committed
379
  google/protobuf/compiler/java/java_message.cc                \
380 381 382
  google/protobuf/compiler/java/java_message_lite.cc           \
  google/protobuf/compiler/java/java_message_builder.cc        \
  google/protobuf/compiler/java/java_message_builder_lite.cc   \
temporal's avatar
temporal committed
383 384
  google/protobuf/compiler/java/java_message_field.cc          \
  google/protobuf/compiler/java/java_message_field.h           \
385 386
  google/protobuf/compiler/java/java_message_field_lite.cc     \
  google/protobuf/compiler/java/java_message_field_lite.h      \
387
  google/protobuf/compiler/java/java_message.h                 \
388 389 390
  google/protobuf/compiler/java/java_message_lite.h            \
  google/protobuf/compiler/java/java_message_builder.h         \
  google/protobuf/compiler/java/java_message_builder_lite.h    \
391 392
  google/protobuf/compiler/java/java_name_resolver.cc          \
  google/protobuf/compiler/java/java_name_resolver.h           \
393
  google/protobuf/compiler/java/java_options.h                 \
temporal's avatar
temporal committed
394 395
  google/protobuf/compiler/java/java_primitive_field.cc        \
  google/protobuf/compiler/java/java_primitive_field.h         \
396 397
  google/protobuf/compiler/java/java_primitive_field_lite.cc   \
  google/protobuf/compiler/java/java_primitive_field_lite.h    \
398 399
  google/protobuf/compiler/java/java_shared_code_generator.cc  \
  google/protobuf/compiler/java/java_shared_code_generator.h   \
temporal's avatar
temporal committed
400 401
  google/protobuf/compiler/java/java_service.cc                \
  google/protobuf/compiler/java/java_service.h                 \
402 403
  google/protobuf/compiler/java/java_string_field.cc           \
  google/protobuf/compiler/java/java_string_field.h            \
404 405
  google/protobuf/compiler/java/java_string_field_lite.cc      \
  google/protobuf/compiler/java/java_string_field_lite.h       \
406 407
  google/protobuf/compiler/java/java_doc_comment.cc            \
  google/protobuf/compiler/java/java_doc_comment.h             \
408
  google/protobuf/compiler/js/js_generator.cc                  \
409
  google/protobuf/compiler/js/well_known_types_embed.cc        \
410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432
  google/protobuf/compiler/objectivec/objectivec_enum.cc       \
  google/protobuf/compiler/objectivec/objectivec_enum.h        \
  google/protobuf/compiler/objectivec/objectivec_enum_field.cc \
  google/protobuf/compiler/objectivec/objectivec_enum_field.h  \
  google/protobuf/compiler/objectivec/objectivec_extension.cc  \
  google/protobuf/compiler/objectivec/objectivec_extension.h   \
  google/protobuf/compiler/objectivec/objectivec_field.cc      \
  google/protobuf/compiler/objectivec/objectivec_field.h       \
  google/protobuf/compiler/objectivec/objectivec_file.cc       \
  google/protobuf/compiler/objectivec/objectivec_file.h        \
  google/protobuf/compiler/objectivec/objectivec_generator.cc  \
  google/protobuf/compiler/objectivec/objectivec_helpers.cc    \
  google/protobuf/compiler/objectivec/objectivec_helpers.h     \
  google/protobuf/compiler/objectivec/objectivec_map_field.cc  \
  google/protobuf/compiler/objectivec/objectivec_map_field.h   \
  google/protobuf/compiler/objectivec/objectivec_message.cc    \
  google/protobuf/compiler/objectivec/objectivec_message.h     \
  google/protobuf/compiler/objectivec/objectivec_message_field.cc \
  google/protobuf/compiler/objectivec/objectivec_message_field.h \
  google/protobuf/compiler/objectivec/objectivec_oneof.cc      \
  google/protobuf/compiler/objectivec/objectivec_oneof.h       \
  google/protobuf/compiler/objectivec/objectivec_primitive_field.cc \
  google/protobuf/compiler/objectivec/objectivec_primitive_field.h \
433
  google/protobuf/compiler/php/php_generator.cc                \
Chris Fallin's avatar
Chris Fallin committed
434
  google/protobuf/compiler/python/python_generator.cc          \
435
  google/protobuf/compiler/ruby/ruby_generator.cc              \
436 437
  google/protobuf/compiler/csharp/csharp_doc_comment.cc        \
  google/protobuf/compiler/csharp/csharp_doc_comment.h         \
438
  google/protobuf/compiler/csharp/csharp_enum.cc               \
439
  google/protobuf/compiler/csharp/csharp_enum.h                \
440
  google/protobuf/compiler/csharp/csharp_enum_field.cc         \
441
  google/protobuf/compiler/csharp/csharp_enum_field.h          \
442
  google/protobuf/compiler/csharp/csharp_field_base.cc         \
443
  google/protobuf/compiler/csharp/csharp_field_base.h          \
444 445
  google/protobuf/compiler/csharp/csharp_generator.cc          \
  google/protobuf/compiler/csharp/csharp_helpers.cc            \
446
  google/protobuf/compiler/csharp/csharp_helpers.h             \
Jon Skeet's avatar
Jon Skeet committed
447 448
  google/protobuf/compiler/csharp/csharp_map_field.cc          \
  google/protobuf/compiler/csharp/csharp_map_field.h           \
449
  google/protobuf/compiler/csharp/csharp_message.cc            \
450
  google/protobuf/compiler/csharp/csharp_message.h             \
451
  google/protobuf/compiler/csharp/csharp_message_field.cc      \
452
  google/protobuf/compiler/csharp/csharp_message_field.h       \
453
  google/protobuf/compiler/csharp/csharp_options.h             \
454
  google/protobuf/compiler/csharp/csharp_primitive_field.cc    \
455
  google/protobuf/compiler/csharp/csharp_primitive_field.h     \
456 457
  google/protobuf/compiler/csharp/csharp_reflection_class.cc     \
  google/protobuf/compiler/csharp/csharp_reflection_class.h      \
458
  google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc \
459
  google/protobuf/compiler/csharp/csharp_repeated_enum_field.h \
460
  google/protobuf/compiler/csharp/csharp_repeated_message_field.cc \
461
  google/protobuf/compiler/csharp/csharp_repeated_message_field.h \
462
  google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc \
463
  google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h \
464
  google/protobuf/compiler/csharp/csharp_source_generator_base.cc \
465
  google/protobuf/compiler/csharp/csharp_source_generator_base.h \
466 467
  google/protobuf/compiler/csharp/csharp_wrapper_field.cc      \
  google/protobuf/compiler/csharp/csharp_wrapper_field.h
temporal's avatar
temporal committed
468

469
bin_PROGRAMS = protoc
temporal's avatar
temporal committed
470 471 472 473 474
protoc_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la
protoc_SOURCES = google/protobuf/compiler/main.cc

# Tests ==============================================================

475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490
protoc_inputs =                                                   \
  google/protobuf/any_test.proto                                  \
  google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto     \
  google/protobuf/map_lite_unittest.proto                         \
  google/protobuf/map_proto2_unittest.proto                       \
  google/protobuf/map_unittest.proto                              \
  google/protobuf/unittest_arena.proto                            \
  google/protobuf/unittest_custom_options.proto                   \
  google/protobuf/unittest_drop_unknown_fields.proto              \
  google/protobuf/unittest_embed_optimize_for.proto               \
  google/protobuf/unittest_empty.proto                            \
  google/protobuf/unittest_enormous_descriptor.proto              \
  google/protobuf/unittest_import_lite.proto                      \
  google/protobuf/unittest_import.proto                           \
  google/protobuf/unittest_import_public_lite.proto               \
  google/protobuf/unittest_import_public.proto                    \
491 492 493
  google/protobuf/unittest_lazy_dependencies.proto                \
  google/protobuf/unittest_lazy_dependencies_custom_option.proto  \
  google/protobuf/unittest_lazy_dependencies_enum.proto           \
494 495 496
  google/protobuf/unittest_lite_imports_nonlite.proto             \
  google/protobuf/unittest_lite.proto                             \
  google/protobuf/unittest_mset.proto                             \
497 498
  google/protobuf/unittest_mset_wire_format.proto                 \
  google/protobuf/unittest_no_arena_lite.proto                    \
499 500 501 502 503 504 505 506
  google/protobuf/unittest_no_arena_import.proto                  \
  google/protobuf/unittest_no_arena.proto                         \
  google/protobuf/unittest_no_field_presence.proto                \
  google/protobuf/unittest_no_generic_services.proto              \
  google/protobuf/unittest_optimize_for.proto                     \
  google/protobuf/unittest_preserve_unknown_enum2.proto           \
  google/protobuf/unittest_preserve_unknown_enum.proto            \
  google/protobuf/unittest.proto                                  \
507
  google/protobuf/unittest_proto3.proto                           \
508
  google/protobuf/unittest_proto3_arena.proto                     \
509 510
  google/protobuf/unittest_proto3_arena_lite.proto                \
  google/protobuf/unittest_proto3_lite.proto                      \
511 512 513 514 515 516 517
  google/protobuf/unittest_well_known_types.proto                 \
  google/protobuf/util/internal/testdata/anys.proto               \
  google/protobuf/util/internal/testdata/books.proto              \
  google/protobuf/util/internal/testdata/default_value.proto      \
  google/protobuf/util/internal/testdata/default_value_test.proto \
  google/protobuf/util/internal/testdata/field_mask.proto         \
  google/protobuf/util/internal/testdata/maps.proto               \
518
  google/protobuf/util/internal/testdata/oneofs.proto             \
Bo Yang's avatar
Bo Yang committed
519
  google/protobuf/util/internal/testdata/proto3.proto             \
520 521
  google/protobuf/util/internal/testdata/struct.proto             \
  google/protobuf/util/internal/testdata/timestamp_duration.proto \
Bo Yang's avatar
Bo Yang committed
522
  google/protobuf/util/internal/testdata/wrappers.proto           \
523
  google/protobuf/util/json_format.proto                          \
524
  google/protobuf/util/json_format_proto3.proto                   \
525
  google/protobuf/util/message_differencer_unittest.proto         \
526
  google/protobuf/compiler/cpp/cpp_test_large_enum_value.proto
temporal's avatar
temporal committed
527 528 529

EXTRA_DIST =                                                   \
  $(protoc_inputs)                                             \
530
  $(js_well_known_types_sources)                               \
temporal's avatar
temporal committed
531
  solaris/libstdc++.la                                         \
532 533
  google/protobuf/test_messages_proto3.proto                   \
  google/protobuf/test_messages_proto2.proto                   \
534 535
  google/protobuf/io/gzip_stream.h                             \
  google/protobuf/io/gzip_stream_unittest.sh                   \
temporal's avatar
temporal committed
536
  google/protobuf/testdata/golden_message                      \
537
  google/protobuf/testdata/golden_message_maps                 \
538
  google/protobuf/testdata/golden_message_oneof_implemented    \
539
  google/protobuf/testdata/golden_message_proto3               \
540
  google/protobuf/testdata/golden_packed_fields_message        \
541
  google/protobuf/testdata/bad_utf8_string                     \
542
  google/protobuf/testdata/map_test_data.txt                   \
543
  google/protobuf/testdata/text_format_unittest_data.txt       \
544
  google/protobuf/testdata/text_format_unittest_data_oneof_implemented.txt  \
545
  google/protobuf/testdata/text_format_unittest_data_pointy.txt             \
546
  google/protobuf/testdata/text_format_unittest_data_pointy_oneof.txt       \
547
  google/protobuf/testdata/text_format_unittest_extensions_data.txt         \
548
  google/protobuf/testdata/text_format_unittest_extensions_data_pointy.txt  \
temporal's avatar
temporal committed
549 550
  google/protobuf/package_info.h                               \
  google/protobuf/io/package_info.h                            \
551
  google/protobuf/util/package_info.h                          \
552
  google/protobuf/compiler/ruby/ruby_generated_code.proto      \
553
  google/protobuf/compiler/ruby/ruby_generated_code_pb.rb      \
554
  google/protobuf/compiler/package_info.h                      \
555
  google/protobuf/compiler/zip_output_unittest.sh              \
556 557 558
  libprotobuf-lite.map                                         \
  libprotobuf.map                                              \
  libprotoc.map                                                \
559
  README.md
temporal's avatar
temporal committed
560

561
protoc_lite_outputs =                                          \
562 563
  google/protobuf/map_lite_unittest.pb.cc                      \
  google/protobuf/map_lite_unittest.pb.h                       \
564 565
  google/protobuf/unittest_lite.pb.cc                          \
  google/protobuf/unittest_lite.pb.h                           \
566 567
  google/protobuf/unittest_no_arena_lite.pb.cc                 \
  google/protobuf/unittest_no_arena_lite.pb.h                  \
568
  google/protobuf/unittest_import_lite.pb.cc                   \
569 570 571
  google/protobuf/unittest_import_lite.pb.h                    \
  google/protobuf/unittest_import_public_lite.pb.cc            \
  google/protobuf/unittest_import_public_lite.pb.h
572

573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600
protoc_outputs =                                                  \
  $(protoc_lite_outputs)                                          \
  google/protobuf/any_test.pb.cc                                  \
  google/protobuf/any_test.pb.h                                   \
  google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.cc     \
  google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.h      \
  google/protobuf/compiler/cpp/cpp_test_large_enum_value.pb.cc    \
  google/protobuf/compiler/cpp/cpp_test_large_enum_value.pb.h     \
  google/protobuf/map_proto2_unittest.pb.cc                       \
  google/protobuf/map_proto2_unittest.pb.h                        \
  google/protobuf/map_unittest.pb.cc                              \
  google/protobuf/map_unittest.pb.h                               \
  google/protobuf/unittest_arena.pb.cc                            \
  google/protobuf/unittest_arena.pb.h                             \
  google/protobuf/unittest_custom_options.pb.cc                   \
  google/protobuf/unittest_custom_options.pb.h                    \
  google/protobuf/unittest_drop_unknown_fields.pb.cc              \
  google/protobuf/unittest_drop_unknown_fields.pb.h               \
  google/protobuf/unittest_embed_optimize_for.pb.cc               \
  google/protobuf/unittest_embed_optimize_for.pb.h                \
  google/protobuf/unittest_empty.pb.cc                            \
  google/protobuf/unittest_empty.pb.h                             \
  google/protobuf/unittest_enormous_descriptor.pb.cc              \
  google/protobuf/unittest_enormous_descriptor.pb.h               \
  google/protobuf/unittest_import.pb.cc                           \
  google/protobuf/unittest_import.pb.h                            \
  google/protobuf/unittest_import_public.pb.cc                    \
  google/protobuf/unittest_import_public.pb.h                     \
601 602 603 604 605 606
  google/protobuf/unittest_lazy_dependencies.pb.cc                \
  google/protobuf/unittest_lazy_dependencies.pb.h                 \
  google/protobuf/unittest_lazy_dependencies_custom_option.pb.cc  \
  google/protobuf/unittest_lazy_dependencies_custom_option.pb.h   \
  google/protobuf/unittest_lazy_dependencies_enum.pb.cc           \
  google/protobuf/unittest_lazy_dependencies_enum.pb.h            \
607 608 609 610
  google/protobuf/unittest_lite_imports_nonlite.pb.cc             \
  google/protobuf/unittest_lite_imports_nonlite.pb.h              \
  google/protobuf/unittest_mset.pb.cc                             \
  google/protobuf/unittest_mset.pb.h                              \
611 612
  google/protobuf/unittest_mset_wire_format.pb.cc                 \
  google/protobuf/unittest_mset_wire_format.pb.h                  \
613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628
  google/protobuf/unittest_no_arena_import.pb.cc                  \
  google/protobuf/unittest_no_arena_import.pb.h                   \
  google/protobuf/unittest_no_arena.pb.cc                         \
  google/protobuf/unittest_no_arena.pb.h                          \
  google/protobuf/unittest_no_field_presence.pb.cc                \
  google/protobuf/unittest_no_field_presence.pb.h                 \
  google/protobuf/unittest_no_generic_services.pb.cc              \
  google/protobuf/unittest_no_generic_services.pb.h               \
  google/protobuf/unittest_optimize_for.pb.cc                     \
  google/protobuf/unittest_optimize_for.pb.h                      \
  google/protobuf/unittest.pb.cc                                  \
  google/protobuf/unittest.pb.h                                   \
  google/protobuf/unittest_preserve_unknown_enum2.pb.cc           \
  google/protobuf/unittest_preserve_unknown_enum2.pb.h            \
  google/protobuf/unittest_preserve_unknown_enum.pb.cc            \
  google/protobuf/unittest_preserve_unknown_enum.pb.h             \
629 630
  google/protobuf/unittest_proto3.pb.cc                           \
  google/protobuf/unittest_proto3.pb.h                            \
631 632
  google/protobuf/unittest_proto3_arena.pb.cc                     \
  google/protobuf/unittest_proto3_arena.pb.h                      \
633 634 635 636
  google/protobuf/unittest_proto3_arena_lite.pb.cc                \
  google/protobuf/unittest_proto3_arena_lite.pb.h                 \
  google/protobuf/unittest_proto3_lite.pb.cc                      \
  google/protobuf/unittest_proto3_lite.pb.h                       \
637 638 639 640 641 642 643 644 645 646 647 648 649 650
  google/protobuf/unittest_well_known_types.pb.cc                 \
  google/protobuf/unittest_well_known_types.pb.h                  \
  google/protobuf/util/internal/testdata/anys.pb.cc               \
  google/protobuf/util/internal/testdata/anys.pb.h                \
  google/protobuf/util/internal/testdata/books.pb.cc              \
  google/protobuf/util/internal/testdata/books.pb.h               \
  google/protobuf/util/internal/testdata/default_value.pb.cc      \
  google/protobuf/util/internal/testdata/default_value.pb.h       \
  google/protobuf/util/internal/testdata/default_value_test.pb.cc \
  google/protobuf/util/internal/testdata/default_value_test.pb.h  \
  google/protobuf/util/internal/testdata/field_mask.pb.cc         \
  google/protobuf/util/internal/testdata/field_mask.pb.h          \
  google/protobuf/util/internal/testdata/maps.pb.cc               \
  google/protobuf/util/internal/testdata/maps.pb.h                \
651 652
  google/protobuf/util/internal/testdata/oneofs.pb.cc             \
  google/protobuf/util/internal/testdata/oneofs.pb.h              \
Bo Yang's avatar
Bo Yang committed
653 654
  google/protobuf/util/internal/testdata/proto3.pb.cc             \
  google/protobuf/util/internal/testdata/proto3.pb.h              \
655 656 657 658
  google/protobuf/util/internal/testdata/struct.pb.cc             \
  google/protobuf/util/internal/testdata/struct.pb.h              \
  google/protobuf/util/internal/testdata/timestamp_duration.pb.cc \
  google/protobuf/util/internal/testdata/timestamp_duration.pb.h  \
Bo Yang's avatar
Bo Yang committed
659 660
  google/protobuf/util/internal/testdata/wrappers.pb.cc           \
  google/protobuf/util/internal/testdata/wrappers.pb.h            \
661 662
  google/protobuf/util/json_format.pb.cc                          \
  google/protobuf/util/json_format.pb.h                           \
663
  google/protobuf/util/json_format_proto3.pb.cc                   \
664 665 666
  google/protobuf/util/json_format_proto3.pb.h                    \
  google/protobuf/util/message_differencer_unittest.pb.cc         \
  google/protobuf/util/message_differencer_unittest.pb.h
temporal's avatar
temporal committed
667

668 669 670
if USE_EXTERNAL_PROTOC

unittest_proto_middleman: $(protoc_inputs)
671
	$(PROTOC) -I$(srcdir) --cpp_out=. $^
672 673 674 675
	touch unittest_proto_middleman

else

676 677 678
# We have to cd to $(srcdir) before executing protoc because $(protoc_inputs) is
# relative to srcdir, which may not be the same as the current directory when
# building out-of-tree.
temporal's avatar
temporal committed
679
unittest_proto_middleman: protoc$(EXEEXT) $(protoc_inputs)
680
	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/protoc$(EXEEXT) -I. --cpp_out=$$oldpwd $(protoc_inputs) )
temporal's avatar
temporal committed
681 682
	touch unittest_proto_middleman

683 684
endif

temporal's avatar
temporal committed
685 686
$(protoc_outputs): unittest_proto_middleman

687
COMMON_TEST_SOURCES =                                          \
688 689
  google/protobuf/arena_test_util.cc                           \
  google/protobuf/arena_test_util.h                            \
690 691
  google/protobuf/map_test_util.cc                             \
  google/protobuf/map_test_util.h                              \
692
  google/protobuf/map_test_util_impl.h                         \
693 694
  google/protobuf/test_util.cc                                 \
  google/protobuf/test_util.h                                  \
695
  google/protobuf/test_util.inc                                \
Feng Xiao's avatar
Feng Xiao committed
696
  google/protobuf/test_util2.h                                 \
697 698 699 700 701
  google/protobuf/testing/googletest.cc                        \
  google/protobuf/testing/googletest.h                         \
  google/protobuf/testing/file.cc                              \
  google/protobuf/testing/file.h

702 703 704 705
GOOGLETEST_BUILD_DIR=../third_party/googletest/googletest
GOOGLEMOCK_BUILD_DIR=../third_party/googletest/googlemock
GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
706
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
707
                 protobuf-lite-test test_plugin protobuf-lite-arena-test \
708
                 no-warning-test $(GZCHECKPROGRAMS)
709
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
710 711 712 713 714
                      $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la     \
                      $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la     \
                      $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
protobuf_test_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include \
                         -I$(GOOGLEMOCK_SRC_DIR)/include
715 716 717 718
# Disable optimization for tests unless the user explicitly asked for it,
# since test_util.cc takes forever to compile with optimization (with GCC).
# See configure.ac for more info.
protobuf_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
temporal's avatar
temporal committed
719
protobuf_test_SOURCES =                                        \
720
  google/protobuf/stubs/bytestream_unittest.cc                 \
temporal's avatar
temporal committed
721
  google/protobuf/stubs/common_unittest.cc                     \
722
  google/protobuf/stubs/int128_unittest.cc                     \
Jisi Liu's avatar
Jisi Liu committed
723
  google/protobuf/stubs/io_win32_unittest.cc                   \
724 725 726
  google/protobuf/stubs/statusor_test.cc                       \
  google/protobuf/stubs/status_test.cc                         \
  google/protobuf/stubs/stringpiece_unittest.cc                \
727
  google/protobuf/stubs/stringprintf_unittest.cc               \
728 729
  google/protobuf/stubs/structurally_valid_unittest.cc         \
  google/protobuf/stubs/strutil_unittest.cc                    \
730
  google/protobuf/stubs/template_util_unittest.cc              \
731
  google/protobuf/stubs/time_test.cc                           \
732
  google/protobuf/any_test.cc                                  \
733 734
  google/protobuf/arenastring_unittest.cc                      \
  google/protobuf/arena_unittest.cc                            \
temporal's avatar
temporal committed
735 736
  google/protobuf/descriptor_database_unittest.cc              \
  google/protobuf/descriptor_unittest.cc                       \
737
  google/protobuf/drop_unknown_fields_test.cc                  \
temporal's avatar
temporal committed
738 739 740
  google/protobuf/dynamic_message_unittest.cc                  \
  google/protobuf/extension_set_unittest.cc                    \
  google/protobuf/generated_message_reflection_unittest.cc     \
741 742
  google/protobuf/map_field_test.cc                            \
  google/protobuf/map_test.cc                                  \
temporal's avatar
temporal committed
743
  google/protobuf/message_unittest.cc                          \
744
  google/protobuf/message_unittest.inc                         \
745 746
  google/protobuf/no_field_presence_test.cc                    \
  google/protobuf/preserve_unknown_enum_test.cc                \
747
  google/protobuf/proto3_arena_lite_unittest.cc                \
748
  google/protobuf/proto3_arena_unittest.cc                     \
749
  google/protobuf/proto3_lite_unittest.cc                      \
Feng Xiao's avatar
Feng Xiao committed
750
  google/protobuf/proto3_lite_unittest.inc                     \
temporal's avatar
temporal committed
751
  google/protobuf/reflection_ops_unittest.cc                   \
752
  google/protobuf/repeated_field_reflection_unittest.cc        \
753
  google/protobuf/repeated_field_unittest.cc                   \
temporal's avatar
temporal committed
754 755
  google/protobuf/text_format_unittest.cc                      \
  google/protobuf/unknown_field_set_unittest.cc                \
756
  google/protobuf/well_known_types_unittest.cc                 \
temporal's avatar
temporal committed
757 758 759 760 761
  google/protobuf/wire_format_unittest.cc                      \
  google/protobuf/io/coded_stream_unittest.cc                  \
  google/protobuf/io/printer_unittest.cc                       \
  google/protobuf/io/tokenizer_unittest.cc                     \
  google/protobuf/io/zero_copy_stream_unittest.cc              \
Jisi Liu's avatar
Jisi Liu committed
762 763
  google/protobuf/compiler/annotation_test_util.h              \
  google/protobuf/compiler/annotation_test_util.cc             \
temporal's avatar
temporal committed
764 765
  google/protobuf/compiler/command_line_interface_unittest.cc  \
  google/protobuf/compiler/importer_unittest.cc                \
766 767
  google/protobuf/compiler/mock_code_generator.cc              \
  google/protobuf/compiler/mock_code_generator.h               \
temporal's avatar
temporal committed
768 769
  google/protobuf/compiler/parser_unittest.cc                  \
  google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc       \
770
  google/protobuf/compiler/cpp/cpp_move_unittest.cc            \
771
  google/protobuf/compiler/cpp/cpp_unittest.h                  \
temporal's avatar
temporal committed
772
  google/protobuf/compiler/cpp/cpp_unittest.cc                 \
773
  google/protobuf/compiler/cpp/cpp_unittest.inc                \
774
  google/protobuf/compiler/cpp/cpp_plugin_unittest.cc          \
775
  google/protobuf/compiler/cpp/metadata_test.cc                \
776
  google/protobuf/compiler/java/java_plugin_unittest.cc        \
777
  google/protobuf/compiler/java/java_doc_comment_unittest.cc   \
778
  google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc \
779
  google/protobuf/compiler/python/python_plugin_unittest.cc    \
780
  google/protobuf/compiler/ruby/ruby_generator_unittest.cc     \
781
  google/protobuf/compiler/csharp/csharp_bootstrap_unittest.cc \
782
  google/protobuf/compiler/csharp/csharp_generator_unittest.cc \
783
  google/protobuf/util/delimited_message_util_test.cc          \
784
  google/protobuf/util/field_comparator_test.cc                \
785
  google/protobuf/util/field_mask_util_test.cc                 \
786 787 788 789 790 791 792
  google/protobuf/util/internal/default_value_objectwriter_test.cc \
  google/protobuf/util/internal/json_objectwriter_test.cc      \
  google/protobuf/util/internal/json_stream_parser_test.cc     \
  google/protobuf/util/internal/protostream_objectsource_test.cc \
  google/protobuf/util/internal/protostream_objectwriter_test.cc \
  google/protobuf/util/internal/type_info_test_helper.cc       \
  google/protobuf/util/json_util_test.cc                       \
793
  google/protobuf/util/message_differencer_unittest.cc         \
794
  google/protobuf/util/time_util_test.cc                       \
795
  google/protobuf/util/type_resolver_util_test.cc              \
796 797
  $(COMMON_TEST_SOURCES)
nodist_protobuf_test_SOURCES = $(protoc_outputs)
798
$(am_protobuf_test_OBJECTS): unittest_proto_middleman
799 800 801

# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
802
                      libprotoc.la                                   \
803 804 805 806 807
                      $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la        \
                      $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la        \
                      $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
protobuf_lazy_descriptor_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
                                         -I$(GOOGLETEST_SRC_DIR)/include \
808
                                         -DPROTOBUF_TEST_NO_DESCRIPTORS
809
protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
810 811 812 813
protobuf_lazy_descriptor_test_SOURCES =                        \
  google/protobuf/compiler/cpp/cpp_unittest.cc                 \
  $(COMMON_TEST_SOURCES)
nodist_protobuf_lazy_descriptor_test_SOURCES = $(protoc_outputs)
814
$(am_protobuf_lazy_descriptor_test_OBJECTS): unittest_proto_middleman
temporal's avatar
temporal committed
815

816
COMMON_LITE_TEST_SOURCES =                                             \
817 818
  google/protobuf/arena_test_util.cc                                   \
  google/protobuf/arena_test_util.h                                    \
819 820
  google/protobuf/map_lite_test_util.cc                                \
  google/protobuf/map_lite_test_util.h                                 \
821 822
  google/protobuf/test_util_lite.cc                                    \
  google/protobuf/test_util_lite.h
823 824 825 826 827

# Build lite_unittest separately, since it doesn't use gtest. It can't
# depend on gtest because our internal version of gtest depend on proto
# full runtime and we want to make sure this test builds without full
# runtime.
828 829 830 831 832 833
protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la     \
                           $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
                           $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
                           $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
protobuf_lite_test_CPPFLAGS= -I$(GOOGLEMOCK_SRC_DIR)/include \
                             -I$(GOOGLETEST_SRC_DIR)/include
834 835 836 837
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_test_SOURCES =                                           \
  google/protobuf/lite_unittest.cc                                     \
  $(COMMON_LITE_TEST_SOURCES)
838
nodist_protobuf_lite_test_SOURCES = $(protoc_lite_outputs)
839
$(am_protobuf_lite_test_OBJECTS): unittest_proto_middleman
840

841 842 843 844
# lite_arena_unittest depends on gtest because teboring@ found that without
# gtest when building the test internally our memory sanitizer doesn't detect
# memory leaks (don't know why).
protobuf_lite_arena_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
845 846 847 848 849
                      $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la        \
                      $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la        \
                      $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
protobuf_lite_arena_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include  \
                                    -I$(GOOGLETEST_SRC_DIR)/include
850 851 852 853 854
protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_arena_test_SOURCES =       \
  google/protobuf/lite_arena_unittest.cc \
  $(COMMON_LITE_TEST_SOURCES)
nodist_protobuf_lite_arena_test_SOURCES = $(protoc_lite_outputs)
855
$(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman
856

857 858
# Test plugin binary.
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
859 860
                    $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
861 862 863 864 865 866
test_plugin_SOURCES =                                          \
  google/protobuf/compiler/mock_code_generator.cc              \
  google/protobuf/testing/file.cc                              \
  google/protobuf/testing/file.h                               \
  google/protobuf/compiler/test_plugin.cc

867 868 869 870 871 872 873 874
if HAVE_ZLIB
zcgzip_LDADD = $(PTHREAD_LIBS) libprotobuf.la
zcgzip_SOURCES = google/protobuf/testing/zcgzip.cc

zcgunzip_LDADD = $(PTHREAD_LIBS) libprotobuf.la
zcgunzip_SOURCES = google/protobuf/testing/zcgunzip.cc
endif

875 876 877 878 879 880
# This test target is to ensure all our public header files and generated
# code is free from warnings. We have to be more pedantic about these
# files because they are compiled by users with different compiler flags.
no_warning_test.cc:
	echo "// Generated from Makefile.am" > no_warning_test.cc
	for FILE in $(nobase_include_HEADERS); do \
881
    echo "#include <$${FILE}>" >> no_warning_test.cc; \
882
	done
883
	echo "int main(int, char**) { return 0; }" >> no_warning_test.cc
884

885
no_warning_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la
886
no_warning_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF) \
887
                           -Wall -Wextra -Werror -Wno-unused-parameter -Og
888 889
nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs)

890
TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \
891
        google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS)     \
892
        protobuf-lite-arena-test no-warning-test