Makefile.am 51.8 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                                \
115 116 117 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
  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                     \
149
  google/protobuf/compiler/js/well_known_types_embed.h           \
150 151 152 153 154 155
  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                           \
156
  google/protobuf/util/delimited_message_util.h                  \
157 158 159 160 161
  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                      \
162
  google/protobuf/util/message_differencer.h
temporal's avatar
temporal committed
163

164
lib_LTLIBRARIES = libprotobuf-lite.la libprotobuf.la libprotoc.la
temporal's avatar
temporal committed
165

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

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

301
nodist_libprotobuf_la_SOURCES = $(nodist_libprotobuf_lite_la_SOURCES)
temporal's avatar
temporal committed
302 303

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

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

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

474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489
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                    \
490 491 492
  google/protobuf/unittest_lazy_dependencies.proto                \
  google/protobuf/unittest_lazy_dependencies_custom_option.proto  \
  google/protobuf/unittest_lazy_dependencies_enum.proto           \
493 494 495
  google/protobuf/unittest_lite_imports_nonlite.proto             \
  google/protobuf/unittest_lite.proto                             \
  google/protobuf/unittest_mset.proto                             \
496 497
  google/protobuf/unittest_mset_wire_format.proto                 \
  google/protobuf/unittest_no_arena_lite.proto                    \
498 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                                  \
  google/protobuf/unittest_proto3_arena.proto                     \
507 508
  google/protobuf/unittest_proto3_arena_lite.proto                \
  google/protobuf/unittest_proto3_lite.proto                      \
509 510 511 512 513 514 515
  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               \
516
  google/protobuf/util/internal/testdata/oneofs.proto             \
Bo Yang's avatar
Bo Yang committed
517
  google/protobuf/util/internal/testdata/proto3.proto             \
518 519
  google/protobuf/util/internal/testdata/struct.proto             \
  google/protobuf/util/internal/testdata/timestamp_duration.proto \
Bo Yang's avatar
Bo Yang committed
520
  google/protobuf/util/internal/testdata/wrappers.proto           \
521
  google/protobuf/util/json_format_proto3.proto                   \
522
  google/protobuf/util/message_differencer_unittest.proto         \
523
  google/protobuf/compiler/cpp/cpp_test_large_enum_value.proto
temporal's avatar
temporal committed
524 525 526

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

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

571 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
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                     \
599 600 601 602 603 604
  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            \
605 606 607 608
  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                              \
609 610
  google/protobuf/unittest_mset_wire_format.pb.cc                 \
  google/protobuf/unittest_mset_wire_format.pb.h                  \
611 612 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             \
  google/protobuf/unittest_proto3_arena.pb.cc                     \
  google/protobuf/unittest_proto3_arena.pb.h                      \
629 630 631 632
  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                       \
633 634 635 636 637 638 639 640 641 642 643 644 645 646
  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                \
647 648
  google/protobuf/util/internal/testdata/oneofs.pb.cc             \
  google/protobuf/util/internal/testdata/oneofs.pb.h              \
Bo Yang's avatar
Bo Yang committed
649 650
  google/protobuf/util/internal/testdata/proto3.pb.cc             \
  google/protobuf/util/internal/testdata/proto3.pb.h              \
651 652 653 654
  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
655 656
  google/protobuf/util/internal/testdata/wrappers.pb.cc           \
  google/protobuf/util/internal/testdata/wrappers.pb.h            \
657
  google/protobuf/util/json_format_proto3.pb.cc                   \
658 659 660
  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
661

662 663 664
if USE_EXTERNAL_PROTOC

unittest_proto_middleman: $(protoc_inputs)
665
	$(PROTOC) -I$(srcdir) --cpp_out=. $^
666 667 668 669
	touch unittest_proto_middleman

else

670 671 672
# 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
673
unittest_proto_middleman: protoc$(EXEEXT) $(protoc_inputs)
674
	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/protoc$(EXEEXT) -I. --cpp_out=$$oldpwd $(protoc_inputs) )
temporal's avatar
temporal committed
675 676
	touch unittest_proto_middleman

677 678
endif

temporal's avatar
temporal committed
679 680
$(protoc_outputs): unittest_proto_middleman

681
COMMON_TEST_SOURCES =                                          \
682 683
  google/protobuf/arena_test_util.cc                           \
  google/protobuf/arena_test_util.h                            \
684 685
  google/protobuf/map_test_util.cc                             \
  google/protobuf/map_test_util.h                              \
686
  google/protobuf/map_test_util_impl.h                         \
687 688
  google/protobuf/test_util.cc                                 \
  google/protobuf/test_util.h                                  \
689
  google/protobuf/test_util.inc                                \
690 691 692 693 694
  google/protobuf/testing/googletest.cc                        \
  google/protobuf/testing/googletest.h                         \
  google/protobuf/testing/file.cc                              \
  google/protobuf/testing/file.h

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

# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
794
                      libprotoc.la                                   \
795 796 797 798 799
                      $(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 \
800
                                         -DPROTOBUF_TEST_NO_DESCRIPTORS
801
protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
802 803 804 805
protobuf_lazy_descriptor_test_SOURCES =                        \
  google/protobuf/compiler/cpp/cpp_unittest.cc                 \
  $(COMMON_TEST_SOURCES)
nodist_protobuf_lazy_descriptor_test_SOURCES = $(protoc_outputs)
806
$(am_protobuf_lazy_descriptor_test_OBJECTS): unittest_proto_middleman
temporal's avatar
temporal committed
807

808
COMMON_LITE_TEST_SOURCES =                                             \
809 810
  google/protobuf/arena_test_util.cc                                   \
  google/protobuf/arena_test_util.h                                    \
811 812
  google/protobuf/map_lite_test_util.cc                                \
  google/protobuf/map_lite_test_util.h                                 \
813 814
  google/protobuf/test_util_lite.cc                                    \
  google/protobuf/test_util_lite.h
815 816 817 818 819

# 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.
820 821 822 823 824 825
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
826 827 828 829
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_test_SOURCES =                                           \
  google/protobuf/lite_unittest.cc                                     \
  $(COMMON_LITE_TEST_SOURCES)
830
nodist_protobuf_lite_test_SOURCES = $(protoc_lite_outputs)
831
$(am_protobuf_lite_test_OBJECTS): unittest_proto_middleman
832

833 834 835 836
# 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 \
837 838 839 840 841
                      $(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
842 843 844 845 846
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)
847
$(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman
848

849 850
# Test plugin binary.
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
851 852
                    $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
853 854 855 856 857 858
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

859 860 861 862 863 864 865 866
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

867 868 869 870 871 872
# 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 \
873
    echo "#include <$${FILE}>" >> no_warning_test.cc; \
874
	done
875
	echo "int main(int, char**) { return 0; }" >> no_warning_test.cc
876

877
no_warning_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la
878
no_warning_test_CXXFLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_DEF) $(ZLIB_DEF) \
879
                           -Wall -Wextra -Werror -Wno-unused-parameter -Og
880 881
nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs)

882
TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \
883
        google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS)     \
884
        protobuf-lite-arena-test no-warning-test