Home | History | Annotate | Download | only in src
      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