1 ## Process this file with automake to produce Makefile.in 2 3 if HAVE_ZLIB 4 GZCHECKPROGRAMS = zcgzip zcgunzip 5 GZHEADERS = google/protobuf/io/gzip_stream.h 6 GZTESTS = google/protobuf/io/gzip_stream_unittest.sh 7 else 8 GZCHECKPROGRAMS = 9 GZHEADERS = 10 GZTESTS = 11 endif 12 13 if GCC 14 # These are good warnings to turn on by default 15 NO_OPT_CXXFLAGS = $(PTHREAD_CFLAGS) -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare 16 else 17 NO_OPT_CXXFLAGS = $(PTHREAD_CFLAGS) 18 endif 19 20 AM_CXXFLAGS = $(NO_OPT_CXXFLAGS) $(PROTOBUF_OPT_FLAG) 21 22 AM_LDFLAGS = $(PTHREAD_CFLAGS) 23 24 # If I say "dist_include_DATA", automake complains that $(includedir) is not 25 # a "legitimate" directory for DATA. Screw you, automake. 26 protodir = $(includedir) 27 nobase_dist_proto_DATA = google/protobuf/descriptor.proto \ 28 google/protobuf/compiler/plugin.proto 29 30 # Not sure why these don't get cleaned automatically. 31 clean-local: 32 rm -f *.loT 33 34 CLEANFILES = $(protoc_outputs) unittest_proto_middleman \ 35 testzip.jar testzip.list testzip.proto testzip.zip 36 37 MAINTAINERCLEANFILES = \ 38 Makefile.in 39 40 nobase_include_HEADERS = \ 41 google/protobuf/stubs/common.h \ 42 google/protobuf/stubs/once.h \ 43 google/protobuf/descriptor.h \ 44 google/protobuf/descriptor.pb.h \ 45 google/protobuf/descriptor_database.h \ 46 google/protobuf/dynamic_message.h \ 47 google/protobuf/extension_set.h \ 48 google/protobuf/generated_message_util.h \ 49 google/protobuf/generated_message_reflection.h \ 50 google/protobuf/message.h \ 51 google/protobuf/message_lite.h \ 52 google/protobuf/reflection_ops.h \ 53 google/protobuf/repeated_field.h \ 54 google/protobuf/service.h \ 55 google/protobuf/text_format.h \ 56 google/protobuf/unknown_field_set.h \ 57 google/protobuf/wire_format.h \ 58 google/protobuf/wire_format_lite.h \ 59 google/protobuf/wire_format_lite_inl.h \ 60 google/protobuf/io/coded_stream.h \ 61 $(GZHEADERS) \ 62 google/protobuf/io/printer.h \ 63 google/protobuf/io/tokenizer.h \ 64 google/protobuf/io/zero_copy_stream.h \ 65 google/protobuf/io/zero_copy_stream_impl.h \ 66 google/protobuf/io/zero_copy_stream_impl_lite.h \ 67 google/protobuf/compiler/code_generator.h \ 68 google/protobuf/compiler/command_line_interface.h \ 69 google/protobuf/compiler/importer.h \ 70 google/protobuf/compiler/parser.h \ 71 google/protobuf/compiler/plugin.h \ 72 google/protobuf/compiler/plugin.pb.h \ 73 google/protobuf/compiler/cpp/cpp_generator.h \ 74 google/protobuf/compiler/java/java_generator.h \ 75 google/protobuf/compiler/javamicro/javamicro_generator.h \ 76 google/protobuf/compiler/javanano/javanano_generator.h \ 77 google/protobuf/compiler/python/python_generator.h 78 79 lib_LTLIBRARIES = libprotobuf-lite.la libprotobuf.la libprotoc.la 80 81 libprotobuf_lite_la_LIBADD = $(PTHREAD_LIBS) 82 libprotobuf_lite_la_LDFLAGS = -version-info 6:0:0 -export-dynamic -no-undefined 83 libprotobuf_lite_la_SOURCES = \ 84 google/protobuf/stubs/common.cc \ 85 google/protobuf/stubs/once.cc \ 86 google/protobuf/stubs/hash.cc \ 87 google/protobuf/stubs/hash.h \ 88 google/protobuf/stubs/map-util.h \ 89 google/protobuf/stubs/stl_util-inl.h \ 90 google/protobuf/extension_set.cc \ 91 google/protobuf/generated_message_util.cc \ 92 google/protobuf/message_lite.cc \ 93 google/protobuf/repeated_field.cc \ 94 google/protobuf/wire_format_lite.cc \ 95 google/protobuf/io/coded_stream.cc \ 96 google/protobuf/io/coded_stream_inl.h \ 97 google/protobuf/io/zero_copy_stream.cc \ 98 google/protobuf/io/zero_copy_stream_impl_lite.cc 99 100 libprotobuf_la_LIBADD = $(PTHREAD_LIBS) 101 libprotobuf_la_LDFLAGS = -version-info 6:0:0 -export-dynamic -no-undefined 102 libprotobuf_la_SOURCES = \ 103 $(libprotobuf_lite_la_SOURCES) \ 104 google/protobuf/stubs/strutil.cc \ 105 google/protobuf/stubs/strutil.h \ 106 google/protobuf/stubs/substitute.cc \ 107 google/protobuf/stubs/substitute.h \ 108 google/protobuf/stubs/structurally_valid.cc \ 109 google/protobuf/descriptor.cc \ 110 google/protobuf/descriptor.pb.cc \ 111 google/protobuf/descriptor_database.cc \ 112 google/protobuf/dynamic_message.cc \ 113 google/protobuf/extension_set_heavy.cc \ 114 google/protobuf/generated_message_reflection.cc \ 115 google/protobuf/message.cc \ 116 google/protobuf/reflection_ops.cc \ 117 google/protobuf/service.cc \ 118 google/protobuf/text_format.cc \ 119 google/protobuf/unknown_field_set.cc \ 120 google/protobuf/wire_format.cc \ 121 google/protobuf/io/gzip_stream.cc \ 122 google/protobuf/io/printer.cc \ 123 google/protobuf/io/tokenizer.cc \ 124 google/protobuf/io/zero_copy_stream_impl.cc \ 125 google/protobuf/compiler/importer.cc \ 126 google/protobuf/compiler/parser.cc 127 128 libprotoc_la_LIBADD = $(PTHREAD_LIBS) libprotobuf.la 129 libprotoc_la_LDFLAGS = -version-info 6:0:0 -export-dynamic -no-undefined 130 libprotoc_la_SOURCES = \ 131 google/protobuf/compiler/code_generator.cc \ 132 google/protobuf/compiler/command_line_interface.cc \ 133 google/protobuf/compiler/plugin.cc \ 134 google/protobuf/compiler/plugin.pb.cc \ 135 google/protobuf/compiler/subprocess.cc \ 136 google/protobuf/compiler/subprocess.h \ 137 google/protobuf/compiler/zip_writer.cc \ 138 google/protobuf/compiler/zip_writer.h \ 139 google/protobuf/compiler/cpp/cpp_enum.cc \ 140 google/protobuf/compiler/cpp/cpp_enum.h \ 141 google/protobuf/compiler/cpp/cpp_enum_field.cc \ 142 google/protobuf/compiler/cpp/cpp_enum_field.h \ 143 google/protobuf/compiler/cpp/cpp_extension.cc \ 144 google/protobuf/compiler/cpp/cpp_extension.h \ 145 google/protobuf/compiler/cpp/cpp_field.cc \ 146 google/protobuf/compiler/cpp/cpp_field.h \ 147 google/protobuf/compiler/cpp/cpp_file.cc \ 148 google/protobuf/compiler/cpp/cpp_file.h \ 149 google/protobuf/compiler/cpp/cpp_generator.cc \ 150 google/protobuf/compiler/cpp/cpp_helpers.cc \ 151 google/protobuf/compiler/cpp/cpp_helpers.h \ 152 google/protobuf/compiler/cpp/cpp_message.cc \ 153 google/protobuf/compiler/cpp/cpp_message.h \ 154 google/protobuf/compiler/cpp/cpp_message_field.cc \ 155 google/protobuf/compiler/cpp/cpp_message_field.h \ 156 google/protobuf/compiler/cpp/cpp_primitive_field.cc \ 157 google/protobuf/compiler/cpp/cpp_primitive_field.h \ 158 google/protobuf/compiler/cpp/cpp_service.cc \ 159 google/protobuf/compiler/cpp/cpp_service.h \ 160 google/protobuf/compiler/cpp/cpp_string_field.cc \ 161 google/protobuf/compiler/cpp/cpp_string_field.h \ 162 google/protobuf/compiler/java/java_enum.cc \ 163 google/protobuf/compiler/java/java_enum.h \ 164 google/protobuf/compiler/java/java_enum_field.cc \ 165 google/protobuf/compiler/java/java_enum_field.h \ 166 google/protobuf/compiler/java/java_extension.cc \ 167 google/protobuf/compiler/java/java_extension.h \ 168 google/protobuf/compiler/java/java_field.cc \ 169 google/protobuf/compiler/java/java_field.h \ 170 google/protobuf/compiler/java/java_file.cc \ 171 google/protobuf/compiler/java/java_file.h \ 172 google/protobuf/compiler/java/java_generator.cc \ 173 google/protobuf/compiler/java/java_helpers.cc \ 174 google/protobuf/compiler/java/java_helpers.h \ 175 google/protobuf/compiler/java/java_message.cc \ 176 google/protobuf/compiler/java/java_message.h \ 177 google/protobuf/compiler/java/java_message_field.cc \ 178 google/protobuf/compiler/java/java_message_field.h \ 179 google/protobuf/compiler/java/java_primitive_field.cc \ 180 google/protobuf/compiler/java/java_primitive_field.h \ 181 google/protobuf/compiler/java/java_service.cc \ 182 google/protobuf/compiler/java/java_service.h \ 183 google/protobuf/compiler/javamicro/javamicro_enum.cc \ 184 google/protobuf/compiler/javamicro/javamicro_enum.h \ 185 google/protobuf/compiler/javamicro/javamicro_enum_field.cc \ 186 google/protobuf/compiler/javamicro/javamicro_enum_field.h \ 187 google/protobuf/compiler/javamicro/javamicro_field.cc \ 188 google/protobuf/compiler/javamicro/javamicro_field.h \ 189 google/protobuf/compiler/javamicro/javamicro_file.cc \ 190 google/protobuf/compiler/javamicro/javamicro_file.h \ 191 google/protobuf/compiler/javamicro/javamicro_generator.cc \ 192 google/protobuf/compiler/javamicro/javamicro_helpers.cc \ 193 google/protobuf/compiler/javamicro/javamicro_helpers.h \ 194 google/protobuf/compiler/javamicro/javamicro_message.cc \ 195 google/protobuf/compiler/javamicro/javamicro_message.h \ 196 google/protobuf/compiler/javamicro/javamicro_message_field.cc\ 197 google/protobuf/compiler/javamicro/javamicro_message_field.h \ 198 google/protobuf/compiler/javamicro/javamicro_primitive_field.cc\ 199 google/protobuf/compiler/javamicro/javamicro_primitive_field.h\ 200 google/protobuf/compiler/javanano/javanano_enum.cc \ 201 google/protobuf/compiler/javanano/javanano_enum.h \ 202 google/protobuf/compiler/javanano/javanano_enum_field.cc \ 203 google/protobuf/compiler/javanano/javanano_enum_field.h \ 204 google/protobuf/compiler/javanano/javanano_extension.cc \ 205 google/protobuf/compiler/javanano/javanano_extension.h \ 206 google/protobuf/compiler/javanano/javanano_field.cc \ 207 google/protobuf/compiler/javanano/javanano_field.h \ 208 google/protobuf/compiler/javanano/javanano_file.cc \ 209 google/protobuf/compiler/javanano/javanano_file.h \ 210 google/protobuf/compiler/javanano/javanano_generator.cc \ 211 google/protobuf/compiler/javanano/javanano_helpers.cc \ 212 google/protobuf/compiler/javanano/javanano_helpers.h \ 213 google/protobuf/compiler/javanano/javanano_message.cc \ 214 google/protobuf/compiler/javanano/javanano_message.h \ 215 google/protobuf/compiler/javanano/javanano_message_field.cc\ 216 google/protobuf/compiler/javanano/javanano_message_field.h \ 217 google/protobuf/compiler/javanano/javanano_primitive_field.cc\ 218 google/protobuf/compiler/javanano/javanano_primitive_field.h\ 219 google/protobuf/compiler/python/python_generator.cc 220 221 bin_PROGRAMS = protoc 222 protoc_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la 223 protoc_SOURCES = google/protobuf/compiler/main.cc 224 225 # Tests ============================================================== 226 227 protoc_inputs = \ 228 google/protobuf/unittest.proto \ 229 google/protobuf/unittest_empty.proto \ 230 google/protobuf/unittest_import.proto \ 231 google/protobuf/unittest_mset.proto \ 232 google/protobuf/unittest_optimize_for.proto \ 233 google/protobuf/unittest_embed_optimize_for.proto \ 234 google/protobuf/unittest_custom_options.proto \ 235 google/protobuf/unittest_lite.proto \ 236 google/protobuf/unittest_import_lite.proto \ 237 google/protobuf/unittest_lite_imports_nonlite.proto \ 238 google/protobuf/unittest_no_generic_services.proto \ 239 google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto 240 241 EXTRA_DIST = \ 242 $(protoc_inputs) \ 243 solaris/libstdc++.la \ 244 google/protobuf/io/gzip_stream.h \ 245 google/protobuf/io/gzip_stream_unittest.sh \ 246 google/protobuf/testdata/golden_message \ 247 google/protobuf/testdata/golden_packed_fields_message \ 248 google/protobuf/testdata/text_format_unittest_data.txt \ 249 google/protobuf/testdata/text_format_unittest_extensions_data.txt \ 250 google/protobuf/package_info.h \ 251 google/protobuf/io/package_info.h \ 252 google/protobuf/compiler/package_info.h \ 253 google/protobuf/compiler/zip_output_unittest.sh \ 254 google/protobuf/unittest_enormous_descriptor.proto 255 256 protoc_lite_outputs = \ 257 google/protobuf/unittest_lite.pb.cc \ 258 google/protobuf/unittest_lite.pb.h \ 259 google/protobuf/unittest_import_lite.pb.cc \ 260 google/protobuf/unittest_import_lite.pb.h 261 262 protoc_outputs = \ 263 $(protoc_lite_outputs) \ 264 google/protobuf/unittest.pb.cc \ 265 google/protobuf/unittest.pb.h \ 266 google/protobuf/unittest_empty.pb.cc \ 267 google/protobuf/unittest_empty.pb.h \ 268 google/protobuf/unittest_import.pb.cc \ 269 google/protobuf/unittest_import.pb.h \ 270 google/protobuf/unittest_mset.pb.cc \ 271 google/protobuf/unittest_mset.pb.h \ 272 google/protobuf/unittest_optimize_for.pb.cc \ 273 google/protobuf/unittest_optimize_for.pb.h \ 274 google/protobuf/unittest_embed_optimize_for.pb.cc \ 275 google/protobuf/unittest_embed_optimize_for.pb.h \ 276 google/protobuf/unittest_custom_options.pb.cc \ 277 google/protobuf/unittest_custom_options.pb.h \ 278 google/protobuf/unittest_lite_imports_nonlite.pb.cc \ 279 google/protobuf/unittest_lite_imports_nonlite.pb.h \ 280 google/protobuf/unittest_no_generic_services.pb.cc \ 281 google/protobuf/unittest_no_generic_services.pb.h \ 282 google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.cc \ 283 google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.h 284 285 BUILT_SOURCES = $(protoc_outputs) 286 287 if USE_EXTERNAL_PROTOC 288 289 unittest_proto_middleman: $(protoc_inputs) 290 $(PROTOC) -I$(srcdir) --cpp_out=. $^ 291 touch unittest_proto_middleman 292 293 else 294 295 # We have to cd to $(srcdir) before executing protoc because $(protoc_inputs) is 296 # relative to srcdir, which may not be the same as the current directory when 297 # building out-of-tree. 298 unittest_proto_middleman: protoc$(EXEEXT) $(protoc_inputs) 299 oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/protoc$(EXEEXT) -I. --cpp_out=$$oldpwd $(protoc_inputs) ) 300 touch unittest_proto_middleman 301 302 endif 303 304 $(protoc_outputs): unittest_proto_middleman 305 306 COMMON_TEST_SOURCES = \ 307 google/protobuf/test_util.cc \ 308 google/protobuf/test_util.h \ 309 google/protobuf/testing/googletest.cc \ 310 google/protobuf/testing/googletest.h \ 311 google/protobuf/testing/file.cc \ 312 google/protobuf/testing/file.h 313 314 check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \ 315 protobuf-lite-test test_plugin $(GZCHECKPROGRAMS) 316 protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ 317 $(top_builddir)/gtest/lib/libgtest.la \ 318 $(top_builddir)/gtest/lib/libgtest_main.la 319 protobuf_test_CPPFLAGS = -I$(top_srcdir)/gtest/include \ 320 -I$(top_builddir)/gtest/include 321 # Disable optimization for tests unless the user explicitly asked for it, 322 # since test_util.cc takes forever to compile with optimization (with GCC). 323 # See configure.ac for more info. 324 protobuf_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) 325 protobuf_test_SOURCES = \ 326 google/protobuf/stubs/common_unittest.cc \ 327 google/protobuf/stubs/once_unittest.cc \ 328 google/protobuf/stubs/strutil_unittest.cc \ 329 google/protobuf/stubs/structurally_valid_unittest.cc \ 330 google/protobuf/descriptor_database_unittest.cc \ 331 google/protobuf/descriptor_unittest.cc \ 332 google/protobuf/dynamic_message_unittest.cc \ 333 google/protobuf/extension_set_unittest.cc \ 334 google/protobuf/generated_message_reflection_unittest.cc \ 335 google/protobuf/message_unittest.cc \ 336 google/protobuf/reflection_ops_unittest.cc \ 337 google/protobuf/repeated_field_unittest.cc \ 338 google/protobuf/text_format_unittest.cc \ 339 google/protobuf/unknown_field_set_unittest.cc \ 340 google/protobuf/wire_format_unittest.cc \ 341 google/protobuf/io/coded_stream_unittest.cc \ 342 google/protobuf/io/printer_unittest.cc \ 343 google/protobuf/io/tokenizer_unittest.cc \ 344 google/protobuf/io/zero_copy_stream_unittest.cc \ 345 google/protobuf/compiler/command_line_interface_unittest.cc \ 346 google/protobuf/compiler/importer_unittest.cc \ 347 google/protobuf/compiler/mock_code_generator.cc \ 348 google/protobuf/compiler/mock_code_generator.h \ 349 google/protobuf/compiler/parser_unittest.cc \ 350 google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc \ 351 google/protobuf/compiler/cpp/cpp_unittest.cc \ 352 google/protobuf/compiler/cpp/cpp_plugin_unittest.cc \ 353 google/protobuf/compiler/java/java_plugin_unittest.cc \ 354 google/protobuf/compiler/python/python_plugin_unittest.cc \ 355 $(COMMON_TEST_SOURCES) 356 nodist_protobuf_test_SOURCES = $(protoc_outputs) 357 358 # Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined. 359 protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \ 360 $(top_builddir)/gtest/lib/libgtest.la \ 361 $(top_builddir)/gtest/lib/libgtest_main.la 362 protobuf_lazy_descriptor_test_CPPFLAGS = -I$(top_srcdir)/gtest/include \ 363 -I$(top_builddir)/gtest/include \ 364 -DPROTOBUF_TEST_NO_DESCRIPTORS 365 protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) 366 protobuf_lazy_descriptor_test_SOURCES = \ 367 google/protobuf/compiler/cpp/cpp_unittest.cc \ 368 $(COMMON_TEST_SOURCES) 369 nodist_protobuf_lazy_descriptor_test_SOURCES = $(protoc_outputs) 370 371 # Build lite_unittest separately, since it doesn't use gtest. 372 protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la 373 protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) 374 protobuf_lite_test_SOURCES = \ 375 google/protobuf/lite_unittest.cc \ 376 google/protobuf/test_util_lite.cc \ 377 google/protobuf/test_util_lite.h 378 nodist_protobuf_lite_test_SOURCES = $(protoc_lite_outputs) 379 380 # Test plugin binary. 381 test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ 382 $(top_builddir)/gtest/lib/libgtest.la 383 test_plugin_CPPFLAGS = -I$(top_srcdir)/gtest/include \ 384 -I$(top_builddir)/gtest/include 385 test_plugin_SOURCES = \ 386 google/protobuf/compiler/mock_code_generator.cc \ 387 google/protobuf/testing/file.cc \ 388 google/protobuf/testing/file.h \ 389 google/protobuf/compiler/test_plugin.cc 390 391 if HAVE_ZLIB 392 zcgzip_LDADD = $(PTHREAD_LIBS) libprotobuf.la 393 zcgzip_SOURCES = google/protobuf/testing/zcgzip.cc 394 395 zcgunzip_LDADD = $(PTHREAD_LIBS) libprotobuf.la 396 zcgunzip_SOURCES = google/protobuf/testing/zcgunzip.cc 397 endif 398 399 TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \ 400 google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) 401