Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 1 | ## Process this file with automake to produce Makefile.in |
| 2 | |
Josh Haberman | 7e74a02 | 2016-01-12 08:56:17 -0800 | [diff] [blame] | 3 | conformance_protoc_inputs = \ |
| 4 | conformance.proto |
| 5 | |
| 6 | well_known_type_protoc_inputs = \ |
Josh Haberman | e891c29 | 2015-12-30 16:03:49 -0800 | [diff] [blame] | 7 | $(top_srcdir)/src/google/protobuf/any.proto \ |
| 8 | $(top_srcdir)/src/google/protobuf/duration.proto \ |
| 9 | $(top_srcdir)/src/google/protobuf/field_mask.proto \ |
| 10 | $(top_srcdir)/src/google/protobuf/struct.proto \ |
| 11 | $(top_srcdir)/src/google/protobuf/timestamp.proto \ |
| 12 | $(top_srcdir)/src/google/protobuf/wrappers.proto |
| 13 | |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 14 | |
| 15 | protoc_outputs = \ |
| 16 | conformance.pb.cc \ |
| 17 | conformance.pb.h |
| 18 | |
Thomas Van Lenten | 42f2eee | 2015-11-16 11:24:58 -0500 | [diff] [blame] | 19 | other_language_protoc_outputs = \ |
| 20 | conformance.rb \ |
Thomas Van Lenten | 1745f7e | 2015-11-17 10:18:49 -0500 | [diff] [blame] | 21 | com/google/protobuf/conformance/Conformance.java \ |
Jisi Liu | 3b3c8ab | 2016-03-30 11:39:59 -0700 | [diff] [blame] | 22 | lite/com/google/protobuf/conformance/Conformance.java \ |
Thomas Van Lenten | a20d0b6 | 2015-12-10 15:34:34 -0500 | [diff] [blame] | 23 | conformance_pb2.py \ |
Thomas Van Lenten | 1745f7e | 2015-11-17 10:18:49 -0500 | [diff] [blame] | 24 | Conformance.pbobjc.h \ |
| 25 | Conformance.pbobjc.m |
Thomas Van Lenten | 42f2eee | 2015-11-16 11:24:58 -0500 | [diff] [blame] | 26 | |
Josh Haberman | 4e63b52 | 2015-04-14 13:45:39 -0700 | [diff] [blame] | 27 | bin_PROGRAMS = conformance-test-runner conformance-cpp |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 28 | |
Feng Xiao | b7610f1 | 2015-12-22 14:36:04 -0800 | [diff] [blame] | 29 | # All source files excepet C++/Objective-C ones should be explicitly listed |
| 30 | # here because the autoconf tools don't include files of other languages |
| 31 | # automatically. |
| 32 | EXTRA_DIST = \ |
| 33 | ConformanceJava.java \ |
Jisi Liu | 3b3c8ab | 2016-03-30 11:39:59 -0700 | [diff] [blame] | 34 | ConformanceJavaLite.java \ |
Feng Xiao | b7610f1 | 2015-12-22 14:36:04 -0800 | [diff] [blame] | 35 | README.md \ |
| 36 | conformance.proto \ |
| 37 | conformance_python.py \ |
| 38 | conformance_ruby.rb \ |
| 39 | failure_list_cpp.txt \ |
| 40 | failure_list_csharp.txt \ |
| 41 | failure_list_java.txt \ |
| 42 | failure_list_objc.txt \ |
| 43 | failure_list_python.txt \ |
| 44 | failure_list_python_cpp.txt \ |
Josh Haberman | ea909a5 | 2015-12-30 17:06:01 -0800 | [diff] [blame] | 45 | failure_list_python-post26.txt \ |
Feng Xiao | b7610f1 | 2015-12-22 14:36:04 -0800 | [diff] [blame] | 46 | failure_list_ruby.txt |
| 47 | |
Josh Haberman | 4e63b52 | 2015-04-14 13:45:39 -0700 | [diff] [blame] | 48 | conformance_test_runner_LDADD = $(top_srcdir)/src/libprotobuf.la |
Feng Xiao | b7610f1 | 2015-12-22 14:36:04 -0800 | [diff] [blame] | 49 | conformance_test_runner_SOURCES = conformance_test.h conformance_test.cc \ |
| 50 | conformance_test_runner.cc \ |
| 51 | third_party/jsoncpp/json.h \ |
Feng Xiao | a0cecfd | 2015-12-14 18:33:38 -0800 | [diff] [blame] | 52 | third_party/jsoncpp/jsoncpp.cpp |
Josh Haberman | 4e63b52 | 2015-04-14 13:45:39 -0700 | [diff] [blame] | 53 | nodist_conformance_test_runner_SOURCES = conformance.pb.cc |
Feng Xiao | a0cecfd | 2015-12-14 18:33:38 -0800 | [diff] [blame] | 54 | conformance_test_runner_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir) |
Feng Xiao | 1e2fece | 2015-12-18 15:16:07 -0800 | [diff] [blame] | 55 | conformance_test_runner_CXXFLAGS = -std=c++11 |
Thomas Van Lenten | 1745f7e | 2015-11-17 10:18:49 -0500 | [diff] [blame] | 56 | # Explicit deps beacuse BUILT_SOURCES are only done before a "make all/check" |
| 57 | # so a direct "make test_cpp" could fail if parallel enough. |
| 58 | conformance_test_runner-conformance_test.$(OBJEXT): conformance.pb.h |
| 59 | conformance_test_runner-conformance_test_runner.$(OBJEXT): conformance.pb.h |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 60 | |
| 61 | conformance_cpp_LDADD = $(top_srcdir)/src/libprotobuf.la |
| 62 | conformance_cpp_SOURCES = conformance_cpp.cc |
| 63 | nodist_conformance_cpp_SOURCES = conformance.pb.cc |
| 64 | conformance_cpp_CPPFLAGS = -I$(top_srcdir)/src |
Thomas Van Lenten | 1745f7e | 2015-11-17 10:18:49 -0500 | [diff] [blame] | 65 | # Explicit dep beacuse BUILT_SOURCES are only done before a "make all/check" |
| 66 | # so a direct "make test_cpp" could fail if parallel enough. |
| 67 | conformance_cpp-conformance_cpp.$(OBJEXT): conformance.pb.h |
| 68 | |
| 69 | if OBJC_CONFORMANCE_TEST |
| 70 | |
| 71 | bin_PROGRAMS += conformance-objc |
| 72 | |
| 73 | conformance_objc_SOURCES = conformance_objc.m ../objectivec/GPBProtocolBuffers.m |
| 74 | nodist_conformance_objc_SOURCES = Conformance.pbobjc.m |
Thomas Van Lenten | 69d713f | 2015-12-02 11:48:14 -0500 | [diff] [blame] | 75 | # On travis, the build fails without the isysroot because whatever system |
| 76 | # headers are being found don't include generics support for |
| 77 | # NSArray/NSDictionary, the only guess is their image at one time had an odd |
| 78 | # setup for Xcode and old frameworks are being found. |
| 79 | conformance_objc_CPPFLAGS = -I$(top_srcdir)/objectivec -isysroot `xcrun --sdk macosx --show-sdk-path` |
Thomas Van Lenten | 1745f7e | 2015-11-17 10:18:49 -0500 | [diff] [blame] | 80 | conformance_objc_LDFLAGS = -framework Foundation |
| 81 | # Explicit dep beacuse BUILT_SOURCES are only done before a "make all/check" |
| 82 | # so a direct "make test_objc" could fail if parallel enough. |
| 83 | conformance_objc-conformance_objc.$(OBJEXT): Conformance.pbobjc.h |
| 84 | |
| 85 | endif |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 86 | |
| 87 | if USE_EXTERNAL_PROTOC |
| 88 | |
Josh Haberman | 7e74a02 | 2016-01-12 08:56:17 -0800 | [diff] [blame] | 89 | # Some implementations include pre-generated versions of well-known types. |
| 90 | protoc_middleman: $(conformance_protoc_inputs) $(well_known_type_protoc_inputs) |
| 91 | $(PROTOC) -I$(srcdir) -I$(top_srcdir) --cpp_out=. --java_out=. --ruby_out=. --objc_out=. --python_out=. $(conformance_protoc_inputs) |
| 92 | $(PROTOC) -I$(srcdir) -I$(top_srcdir) --cpp_out=. --java_out=. --ruby_out=. --python_out=. $(well_known_type_protoc_inputs) |
Jisi Liu | 3b3c8ab | 2016-03-30 11:39:59 -0700 | [diff] [blame] | 93 | $(PROTOC) -I$(srcdir) -I$(top_srcdir) --java_out=lite:lite $(conformance_protoc_inputs) $(well_known_type_protoc_inputs) |
Josh Haberman | 420f938 | 2015-04-16 12:50:39 -0700 | [diff] [blame] | 94 | touch protoc_middleman |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 95 | |
| 96 | else |
| 97 | |
| 98 | # We have to cd to $(srcdir) before executing protoc because $(protoc_inputs) is |
| 99 | # relative to srcdir, which may not be the same as the current directory when |
| 100 | # building out-of-tree. |
Josh Haberman | 7e74a02 | 2016-01-12 08:56:17 -0800 | [diff] [blame] | 101 | protoc_middleman: $(top_srcdir)/src/protoc$(EXEEXT) $(conformance_protoc_inputs) $(well_known_type_protoc_inputs) |
| 102 | oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd --java_out=$$oldpwd --ruby_out=$$oldpwd --objc_out=$$oldpwd --python_out=$$oldpwd $(conformance_protoc_inputs) ) |
| 103 | oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd --java_out=$$oldpwd --ruby_out=$$oldpwd --python_out=$$oldpwd $(well_known_type_protoc_inputs) ) |
Jisi Liu | 3b3c8ab | 2016-03-30 11:39:59 -0700 | [diff] [blame] | 104 | @mkdir -p lite |
| 105 | oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --java_out=lite:$$oldpwd/lite $(conformance_protoc_inputs) $(well_known_type_protoc_inputs) ) |
Josh Haberman | 420f938 | 2015-04-16 12:50:39 -0700 | [diff] [blame] | 106 | touch protoc_middleman |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 107 | |
| 108 | endif |
| 109 | |
Josh Haberman | 420f938 | 2015-04-16 12:50:39 -0700 | [diff] [blame] | 110 | $(protoc_outputs): protoc_middleman |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 111 | |
Thomas Van Lenten | 42f2eee | 2015-11-16 11:24:58 -0500 | [diff] [blame] | 112 | $(other_language_protoc_outputs): protoc_middleman |
| 113 | |
Thomas Van Lenten | 1745f7e | 2015-11-17 10:18:49 -0500 | [diff] [blame] | 114 | BUILT_SOURCES = $(protoc_outputs) $(other_language_protoc_outputs) |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 115 | |
Jisi Liu | 3b3c8ab | 2016-03-30 11:39:59 -0700 | [diff] [blame] | 116 | CLEANFILES = $(protoc_outputs) protoc_middleman javac_middleman conformance-java javac_middleman_lite conformance-java-lite conformance-csharp $(other_language_protoc_outputs) |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 117 | |
| 118 | MAINTAINERCLEANFILES = \ |
| 119 | Makefile.in |
| 120 | |
Thomas Van Lenten | 42f2eee | 2015-11-16 11:24:58 -0500 | [diff] [blame] | 121 | javac_middleman: ConformanceJava.java protoc_middleman $(other_language_protoc_outputs) |
Feng Xiao | ea95676 | 2016-01-14 14:29:51 -0800 | [diff] [blame] | 122 | jar=`ls ../java/util/target/*jar-with-dependencies.jar` && javac -classpath ../java/target/classes:$$jar ConformanceJava.java com/google/protobuf/conformance/Conformance.java |
Josh Haberman | 420f938 | 2015-04-16 12:50:39 -0700 | [diff] [blame] | 123 | @touch javac_middleman |
| 124 | |
| 125 | conformance-java: javac_middleman |
| 126 | @echo "Writing shortcut script conformance-java..." |
| 127 | @echo '#! /bin/sh' > conformance-java |
Feng Xiao | ea95676 | 2016-01-14 14:29:51 -0800 | [diff] [blame] | 128 | @jar=`ls ../java/util/target/*jar-with-dependencies.jar` && echo java -classpath .:../java/target/classes:$$jar ConformanceJava '$$@' >> conformance-java |
Josh Haberman | 420f938 | 2015-04-16 12:50:39 -0700 | [diff] [blame] | 129 | @chmod +x conformance-java |
| 130 | |
Jisi Liu | 3b3c8ab | 2016-03-30 11:39:59 -0700 | [diff] [blame] | 131 | javac_middleman_lite: ConformanceJavaLite.java protoc_middleman $(other_language_protoc_outputs) |
| 132 | javac -classpath ../java/lite/target/classes:lite ConformanceJavaLite.java lite/com/google/protobuf/conformance/Conformance.java |
| 133 | @touch javac_middleman_lite |
| 134 | |
| 135 | conformance-java-lite: javac_middleman_lite |
| 136 | @echo "Writing shortcut script conformance-java-lite..." |
| 137 | @echo '#! /bin/sh' > conformance-java-lite |
| 138 | @echo java -classpath .:../java/lite/target/classes:lite ConformanceJavaLite '$$@' >> conformance-java-lite |
| 139 | @chmod +x conformance-java-lite |
| 140 | |
Jon Skeet | b6defa7 | 2015-08-04 10:01:40 +0100 | [diff] [blame] | 141 | # Currently the conformance code is alongside the rest of the C# |
| 142 | # source, as it's easier to maintain there. We assume we've already |
| 143 | # built that, so we just need a script to run it. |
Thomas Van Lenten | 42f2eee | 2015-11-16 11:24:58 -0500 | [diff] [blame] | 144 | conformance-csharp: $(other_language_protoc_outputs) |
Jon Skeet | b6defa7 | 2015-08-04 10:01:40 +0100 | [diff] [blame] | 145 | @echo "Writing shortcut script conformance-csharp..." |
| 146 | @echo '#! /bin/sh' > conformance-csharp |
| 147 | @echo 'mono ../csharp/src/Google.Protobuf.Conformance/bin/Release/Google.Protobuf.Conformance.exe "$$@"' >> conformance-csharp |
| 148 | @chmod +x conformance-csharp |
| 149 | |
Josh Haberman | 35a1cc7 | 2015-04-01 17:23:48 -0700 | [diff] [blame] | 150 | # Targets for actually running tests. |
Josh Haberman | 420f938 | 2015-04-16 12:50:39 -0700 | [diff] [blame] | 151 | test_cpp: protoc_middleman conformance-test-runner conformance-cpp |
Josh Haberman | d2b6738 | 2015-06-03 12:04:35 -0700 | [diff] [blame] | 152 | ./conformance-test-runner --failure_list failure_list_cpp.txt ./conformance-cpp |
Josh Haberman | 420f938 | 2015-04-16 12:50:39 -0700 | [diff] [blame] | 153 | |
| 154 | test_java: protoc_middleman conformance-test-runner conformance-java |
Feng Xiao | a0cecfd | 2015-12-14 18:33:38 -0800 | [diff] [blame] | 155 | ./conformance-test-runner --failure_list failure_list_java.txt ./conformance-java |
Josh Haberman | 181c7f2 | 2015-07-15 11:05:10 -0700 | [diff] [blame] | 156 | |
Jisi Liu | 3b3c8ab | 2016-03-30 11:39:59 -0700 | [diff] [blame] | 157 | test_java_lite: protoc_middleman conformance-test-runner conformance-java-lite |
| 158 | ./conformance-test-runner ./conformance-java-lite |
| 159 | |
Jon Skeet | b6defa7 | 2015-08-04 10:01:40 +0100 | [diff] [blame] | 160 | test_csharp: protoc_middleman conformance-test-runner conformance-csharp |
| 161 | ./conformance-test-runner --failure_list failure_list_csharp.txt ./conformance-csharp |
| 162 | |
Thomas Van Lenten | 42f2eee | 2015-11-16 11:24:58 -0500 | [diff] [blame] | 163 | test_ruby: protoc_middleman conformance-test-runner $(other_language_protoc_outputs) |
Josh Haberman | 181c7f2 | 2015-07-15 11:05:10 -0700 | [diff] [blame] | 164 | RUBYLIB=../ruby/lib:. ./conformance-test-runner --failure_list failure_list_ruby.txt ./conformance_ruby.rb |
Thomas Van Lenten | 1745f7e | 2015-11-17 10:18:49 -0500 | [diff] [blame] | 165 | |
Josh Haberman | 325392d | 2015-08-17 12:30:49 -0700 | [diff] [blame] | 166 | # These depend on library paths being properly set up. The easiest way to |
| 167 | # run them is to just use "tox" from the python dir. |
| 168 | test_python: protoc_middleman conformance-test-runner |
Josh Haberman | e891c29 | 2015-12-30 16:03:49 -0800 | [diff] [blame] | 169 | ./conformance-test-runner --failure_list failure_list_python.txt $(CONFORMANCE_PYTHON_EXTRA_FAILURES) ./conformance_python.py |
Josh Haberman | 325392d | 2015-08-17 12:30:49 -0700 | [diff] [blame] | 170 | |
| 171 | test_python_cpp: protoc_middleman conformance-test-runner |
Josh Haberman | e891c29 | 2015-12-30 16:03:49 -0800 | [diff] [blame] | 172 | ./conformance-test-runner --failure_list failure_list_python_cpp.txt $(CONFORMANCE_PYTHON_EXTRA_FAILURES) ./conformance_python.py |
Josh Haberman | 325392d | 2015-08-17 12:30:49 -0700 | [diff] [blame] | 173 | |
Thomas Van Lenten | 1745f7e | 2015-11-17 10:18:49 -0500 | [diff] [blame] | 174 | if OBJC_CONFORMANCE_TEST |
| 175 | |
| 176 | test_objc: protoc_middleman conformance-test-runner conformance-objc |
| 177 | ./conformance-test-runner --failure_list failure_list_objc.txt ./conformance-objc |
| 178 | |
| 179 | endif |