Makefile.am 52.6 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

21 22
PROTOBUF_VERSION = 17:0:0

temporal's avatar
temporal committed
23
if GCC
24 25 26
# 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
27
else
28
NO_OPT_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF)
temporal's avatar
temporal committed
29 30
endif

31 32
AM_CXXFLAGS = $(NO_OPT_CXXFLAGS) $(PROTOBUF_OPT_FLAG)

temporal's avatar
temporal committed
33 34 35 36 37
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)
38 39 40 41

# 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.
42 43 44 45 46 47 48 49 50 51 52
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        \
53
                         google/protobuf/compiler/plugin.proto
temporal's avatar
temporal committed
54 55 56 57 58

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

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

MAINTAINERCLEANFILES =   \
  Makefile.in

66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
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/status.h                                 \
  google/protobuf/stubs/stl_util.h                               \
  google/protobuf/stubs/stringpiece.h                            \
82
  google/protobuf/stubs/strutil.h                                \
83 84 85 86 87
  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
88
  google/protobuf/arena_impl.h                                   \
89 90 91 92 93 94 95 96
  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                                \
Adam Cozzette's avatar
Adam Cozzette committed
97
  google/protobuf/extension_set_inl.h                            \
98 99 100 101
  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
102
  google/protobuf/generated_message_table_driven.h               \
103 104
  google/protobuf/generated_message_util.h                       \
  google/protobuf/has_bits.h                                     \
105
  google/protobuf/implicit_weak_message.h                        \
106
  google/protobuf/inlined_string_field.h                         \
107 108 109 110 111 112 113 114 115 116
  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
117
  google/protobuf/metadata_lite.h                                \
Adam Cozzette's avatar
Adam Cozzette committed
118
  google/protobuf/parse_context.h                                \
Feng Xiao's avatar
Feng Xiao committed
119 120 121
  google/protobuf/port.h                                         \
  google/protobuf/port_def.inc                                   \
  google/protobuf/port_undef.inc                                 \
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 152 153 154 155
  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                     \
156
  google/protobuf/compiler/js/well_known_types_embed.h           \
157 158 159 160 161 162
  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                           \
163
  google/protobuf/util/delimited_message_util.h                  \
164 165 166 167 168
  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                      \
169
  google/protobuf/util/message_differencer.h
temporal's avatar
temporal committed
170

171
lib_LTLIBRARIES = libprotobuf-lite.la libprotobuf.la libprotoc.la
temporal's avatar
temporal committed
172

173
libprotobuf_lite_la_LIBADD = $(PTHREAD_LIBS) $(LIBATOMIC_LIBS)
174
libprotobuf_lite_la_LDFLAGS = -version-info $(PROTOBUF_VERSION) -export-dynamic -no-undefined
175 176 177 178
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
179
libprotobuf_lite_la_SOURCES =                                  \
180 181
  google/protobuf/stubs/bytestream.cc                          \
  google/protobuf/stubs/bytestream.h                           \
temporal's avatar
temporal committed
182 183
  google/protobuf/stubs/common.cc                              \
  google/protobuf/stubs/hash.h                                 \
184 185
  google/protobuf/stubs/int128.cc                              \
  google/protobuf/stubs/int128.h                               \
Jisi Liu's avatar
Jisi Liu committed
186 187
  google/protobuf/stubs/io_win32.cc                            \
  google/protobuf/stubs/io_win32.h                             \
188
  google/protobuf/stubs/map_util.h                             \
189 190 191 192 193 194 195 196
  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                          \
197 198
  google/protobuf/stubs/stringprintf.cc                        \
  google/protobuf/stubs/stringprintf.h                         \
199
  google/protobuf/stubs/structurally_valid.cc                  \
Feng Xiao's avatar
Feng Xiao committed
200
  google/protobuf/stubs/strutil.cc                             \
201 202
  google/protobuf/stubs/time.cc                                \
  google/protobuf/stubs/time.h                                 \
203
  google/protobuf/any_lite.cc                                  \
204
  google/protobuf/arena.cc                                     \
205 206
  google/protobuf/extension_set.cc                             \
  google/protobuf/generated_message_util.cc                    \
Jisi Liu's avatar
Jisi Liu committed
207 208
  google/protobuf/generated_message_table_driven_lite.h        \
  google/protobuf/generated_message_table_driven_lite.cc       \
209
  google/protobuf/implicit_weak_message.cc                     \
210
  google/protobuf/message_lite.cc                              \
211
  google/protobuf/parse_context.cc                             \
212 213 214
  google/protobuf/repeated_field.cc                            \
  google/protobuf/wire_format_lite.cc                          \
  google/protobuf/io/coded_stream.cc                           \
215
  google/protobuf/io/coded_stream_inl.h                        \
216
  google/protobuf/io/strtod.cc                                 \
217
  google/protobuf/io/zero_copy_stream.cc                       \
218
  google/protobuf/io/zero_copy_stream_impl_lite.cc
219

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

308
nodist_libprotobuf_la_SOURCES = $(nodist_libprotobuf_lite_la_SOURCES)
temporal's avatar
temporal committed
309 310

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

473
bin_PROGRAMS = protoc
temporal's avatar
temporal committed
474 475 476 477 478
protoc_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la
protoc_SOURCES = google/protobuf/compiler/main.cc

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

479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494
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                    \
495 496 497
  google/protobuf/unittest_lazy_dependencies.proto                \
  google/protobuf/unittest_lazy_dependencies_custom_option.proto  \
  google/protobuf/unittest_lazy_dependencies_enum.proto           \
498 499 500
  google/protobuf/unittest_lite_imports_nonlite.proto             \
  google/protobuf/unittest_lite.proto                             \
  google/protobuf/unittest_mset.proto                             \
501 502
  google/protobuf/unittest_mset_wire_format.proto                 \
  google/protobuf/unittest_no_arena_lite.proto                    \
503 504 505 506 507 508 509 510
  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                                  \
511
  google/protobuf/unittest_proto3.proto                           \
512
  google/protobuf/unittest_proto3_arena.proto                     \
513 514
  google/protobuf/unittest_proto3_arena_lite.proto                \
  google/protobuf/unittest_proto3_lite.proto                      \
515 516 517 518 519 520 521
  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               \
522
  google/protobuf/util/internal/testdata/oneofs.proto             \
Bo Yang's avatar
Bo Yang committed
523
  google/protobuf/util/internal/testdata/proto3.proto             \
524 525
  google/protobuf/util/internal/testdata/struct.proto             \
  google/protobuf/util/internal/testdata/timestamp_duration.proto \
Bo Yang's avatar
Bo Yang committed
526
  google/protobuf/util/internal/testdata/wrappers.proto           \
527
  google/protobuf/util/json_format.proto                          \
528
  google/protobuf/util/json_format_proto3.proto                   \
529
  google/protobuf/util/message_differencer_unittest.proto         \
530
  google/protobuf/compiler/cpp/cpp_test_large_enum_value.proto
temporal's avatar
temporal committed
531 532 533 534

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

566
protoc_lite_outputs =                                          \
567 568
  google/protobuf/map_lite_unittest.pb.cc                      \
  google/protobuf/map_lite_unittest.pb.h                       \
569 570
  google/protobuf/unittest_lite.pb.cc                          \
  google/protobuf/unittest_lite.pb.h                           \
571 572
  google/protobuf/unittest_no_arena_lite.pb.cc                 \
  google/protobuf/unittest_no_arena_lite.pb.h                  \
573
  google/protobuf/unittest_import_lite.pb.cc                   \
574 575 576
  google/protobuf/unittest_import_lite.pb.h                    \
  google/protobuf/unittest_import_public_lite.pb.cc            \
  google/protobuf/unittest_import_public_lite.pb.h
577

578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605
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                     \
606 607 608 609 610 611
  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            \
612 613 614 615
  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                              \
616 617
  google/protobuf/unittest_mset_wire_format.pb.cc                 \
  google/protobuf/unittest_mset_wire_format.pb.h                  \
618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633
  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             \
634 635
  google/protobuf/unittest_proto3.pb.cc                           \
  google/protobuf/unittest_proto3.pb.h                            \
636 637
  google/protobuf/unittest_proto3_arena.pb.cc                     \
  google/protobuf/unittest_proto3_arena.pb.h                      \
638 639 640 641
  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                       \
642 643 644 645 646 647 648 649 650 651 652 653 654 655
  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                \
656 657
  google/protobuf/util/internal/testdata/oneofs.pb.cc             \
  google/protobuf/util/internal/testdata/oneofs.pb.h              \
Bo Yang's avatar
Bo Yang committed
658 659
  google/protobuf/util/internal/testdata/proto3.pb.cc             \
  google/protobuf/util/internal/testdata/proto3.pb.h              \
660 661 662 663
  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
664 665
  google/protobuf/util/internal/testdata/wrappers.pb.cc           \
  google/protobuf/util/internal/testdata/wrappers.pb.h            \
666 667
  google/protobuf/util/json_format.pb.cc                          \
  google/protobuf/util/json_format.pb.h                           \
668
  google/protobuf/util/json_format_proto3.pb.cc                   \
669 670 671
  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
672

673 674 675
if USE_EXTERNAL_PROTOC

unittest_proto_middleman: $(protoc_inputs)
676
	$(PROTOC) -I$(srcdir) --cpp_out=. $^
677 678 679 680
	touch unittest_proto_middleman

else

681 682 683
# 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
684
unittest_proto_middleman: protoc$(EXEEXT) $(protoc_inputs)
685
	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/protoc$(EXEEXT) -I. --cpp_out=$$oldpwd $(protoc_inputs) )
temporal's avatar
temporal committed
686 687
	touch unittest_proto_middleman

688 689
endif

temporal's avatar
temporal committed
690 691
$(protoc_outputs): unittest_proto_middleman

692
COMMON_TEST_SOURCES =                                          \
693 694
  google/protobuf/arena_test_util.cc                           \
  google/protobuf/arena_test_util.h                            \
695 696
  google/protobuf/map_test_util.cc                             \
  google/protobuf/map_test_util.h                              \
697
  google/protobuf/map_test_util_impl.h                         \
698 699
  google/protobuf/test_util.cc                                 \
  google/protobuf/test_util.h                                  \
700
  google/protobuf/test_util.inc                                \
Feng Xiao's avatar
Feng Xiao committed
701
  google/protobuf/test_util2.h                                 \
702 703 704 705 706
  google/protobuf/testing/googletest.cc                        \
  google/protobuf/testing/googletest.h                         \
  google/protobuf/testing/file.cc                              \
  google/protobuf/testing/file.h

707 708 709 710
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
711
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
712
                 protobuf-lite-test test_plugin protobuf-lite-arena-test \
713
                 no-warning-test $(GZCHECKPROGRAMS)
714
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
715 716 717 718 719
                      $(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
720 721 722 723
# 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
724
protobuf_test_SOURCES =                                        \
725
  google/protobuf/stubs/bytestream_unittest.cc                 \
temporal's avatar
temporal committed
726
  google/protobuf/stubs/common_unittest.cc                     \
727
  google/protobuf/stubs/int128_unittest.cc                     \
Jisi Liu's avatar
Jisi Liu committed
728
  google/protobuf/stubs/io_win32_unittest.cc                   \
729 730 731
  google/protobuf/stubs/statusor_test.cc                       \
  google/protobuf/stubs/status_test.cc                         \
  google/protobuf/stubs/stringpiece_unittest.cc                \
732
  google/protobuf/stubs/stringprintf_unittest.cc               \
733 734
  google/protobuf/stubs/structurally_valid_unittest.cc         \
  google/protobuf/stubs/strutil_unittest.cc                    \
735
  google/protobuf/stubs/template_util_unittest.cc              \
736
  google/protobuf/stubs/time_test.cc                           \
737
  google/protobuf/any_test.cc                                  \
738 739
  google/protobuf/arenastring_unittest.cc                      \
  google/protobuf/arena_unittest.cc                            \
temporal's avatar
temporal committed
740 741
  google/protobuf/descriptor_database_unittest.cc              \
  google/protobuf/descriptor_unittest.cc                       \
742
  google/protobuf/drop_unknown_fields_test.cc                  \
temporal's avatar
temporal committed
743 744 745
  google/protobuf/dynamic_message_unittest.cc                  \
  google/protobuf/extension_set_unittest.cc                    \
  google/protobuf/generated_message_reflection_unittest.cc     \
746 747
  google/protobuf/map_field_test.cc                            \
  google/protobuf/map_test.cc                                  \
temporal's avatar
temporal committed
748
  google/protobuf/message_unittest.cc                          \
749
  google/protobuf/message_unittest.inc                         \
750 751
  google/protobuf/no_field_presence_test.cc                    \
  google/protobuf/preserve_unknown_enum_test.cc                \
752
  google/protobuf/proto3_arena_lite_unittest.cc                \
753
  google/protobuf/proto3_arena_unittest.cc                     \
754
  google/protobuf/proto3_lite_unittest.cc                      \
Feng Xiao's avatar
Feng Xiao committed
755
  google/protobuf/proto3_lite_unittest.inc                     \
temporal's avatar
temporal committed
756
  google/protobuf/reflection_ops_unittest.cc                   \
757
  google/protobuf/repeated_field_reflection_unittest.cc        \
758
  google/protobuf/repeated_field_unittest.cc                   \
temporal's avatar
temporal committed
759 760
  google/protobuf/text_format_unittest.cc                      \
  google/protobuf/unknown_field_set_unittest.cc                \
761
  google/protobuf/well_known_types_unittest.cc                 \
temporal's avatar
temporal committed
762 763 764 765 766
  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
767 768
  google/protobuf/compiler/annotation_test_util.h              \
  google/protobuf/compiler/annotation_test_util.cc             \
temporal's avatar
temporal committed
769 770
  google/protobuf/compiler/command_line_interface_unittest.cc  \
  google/protobuf/compiler/importer_unittest.cc                \
771 772
  google/protobuf/compiler/mock_code_generator.cc              \
  google/protobuf/compiler/mock_code_generator.h               \
temporal's avatar
temporal committed
773 774
  google/protobuf/compiler/parser_unittest.cc                  \
  google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc       \
775
  google/protobuf/compiler/cpp/cpp_move_unittest.cc            \
776
  google/protobuf/compiler/cpp/cpp_unittest.h                  \
temporal's avatar
temporal committed
777
  google/protobuf/compiler/cpp/cpp_unittest.cc                 \
778
  google/protobuf/compiler/cpp/cpp_unittest.inc                \
779
  google/protobuf/compiler/cpp/cpp_plugin_unittest.cc          \
780
  google/protobuf/compiler/cpp/metadata_test.cc                \
781
  google/protobuf/compiler/java/java_plugin_unittest.cc        \
782
  google/protobuf/compiler/java/java_doc_comment_unittest.cc   \
783
  google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc \
784
  google/protobuf/compiler/python/python_plugin_unittest.cc    \
785
  google/protobuf/compiler/ruby/ruby_generator_unittest.cc     \
786
  google/protobuf/compiler/csharp/csharp_bootstrap_unittest.cc \
787
  google/protobuf/compiler/csharp/csharp_generator_unittest.cc \
788
  google/protobuf/util/delimited_message_util_test.cc          \
789
  google/protobuf/util/field_comparator_test.cc                \
790
  google/protobuf/util/field_mask_util_test.cc                 \
791 792 793 794 795 796 797
  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                       \
798
  google/protobuf/util/message_differencer_unittest.cc         \
799
  google/protobuf/util/time_util_test.cc                       \
800
  google/protobuf/util/type_resolver_util_test.cc              \
801 802
  $(COMMON_TEST_SOURCES)
nodist_protobuf_test_SOURCES = $(protoc_outputs)
803
$(am_protobuf_test_OBJECTS): unittest_proto_middleman
804 805 806

# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
807
                      libprotoc.la                                   \
808 809 810 811 812
                      $(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 \
813
                                         -DPROTOBUF_TEST_NO_DESCRIPTORS
814
protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
815 816 817 818
protobuf_lazy_descriptor_test_SOURCES =                        \
  google/protobuf/compiler/cpp/cpp_unittest.cc                 \
  $(COMMON_TEST_SOURCES)
nodist_protobuf_lazy_descriptor_test_SOURCES = $(protoc_outputs)
819
$(am_protobuf_lazy_descriptor_test_OBJECTS): unittest_proto_middleman
temporal's avatar
temporal committed
820

821
COMMON_LITE_TEST_SOURCES =                                             \
822 823
  google/protobuf/arena_test_util.cc                                   \
  google/protobuf/arena_test_util.h                                    \
824 825
  google/protobuf/map_lite_test_util.cc                                \
  google/protobuf/map_lite_test_util.h                                 \
826 827
  google/protobuf/test_util_lite.cc                                    \
  google/protobuf/test_util_lite.h
828 829 830 831 832

# 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.
833 834 835 836 837 838
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
839 840 841 842
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_test_SOURCES =                                           \
  google/protobuf/lite_unittest.cc                                     \
  $(COMMON_LITE_TEST_SOURCES)
843
nodist_protobuf_lite_test_SOURCES = $(protoc_lite_outputs)
844
$(am_protobuf_lite_test_OBJECTS): unittest_proto_middleman
845

846 847 848 849
# 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 \
850 851 852 853 854
                      $(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
855 856 857 858 859
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)
860
$(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman
861

862 863
# Test plugin binary.
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
864 865
                    $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
866 867 868 869 870 871
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

872 873 874 875 876 877 878 879
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

880 881 882 883 884 885
# 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 \
886
    echo "#include <$${FILE}>" >> no_warning_test.cc; \
887
	done
888
	echo "int main(int, char**) { return 0; }" >> no_warning_test.cc
889

890
no_warning_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la
891
no_warning_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF) \
892
                           -Wall -Wextra -Werror -Wno-unused-parameter -Og
893 894
nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs)

895
TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \
896
        google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS)     \
897
        protobuf-lite-arena-test no-warning-test