xref: /aosp_15_r20/external/cronet/third_party/protobuf/benchmarks/Makefile.am (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_inputs_benchmark_wrapper =                               \
2*6777b538SAndroid Build Coastguard Worker	benchmarks.proto
3*6777b538SAndroid Build Coastguard Worker
4*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_inputs =                                                 \
5*6777b538SAndroid Build Coastguard Worker	datasets/google_message1/proto3/benchmark_message1_proto3.proto
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_inputs_proto2 =                                          \
8*6777b538SAndroid Build Coastguard Worker	datasets/google_message1/proto2/benchmark_message1_proto2.proto          \
9*6777b538SAndroid Build Coastguard Worker	datasets/google_message2/benchmark_message2.proto                        \
10*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3.proto                        \
11*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_1.proto                      \
12*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_2.proto                      \
13*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_3.proto                      \
14*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_4.proto                      \
15*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_5.proto                      \
16*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_6.proto                      \
17*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_7.proto                      \
18*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_8.proto                      \
19*6777b538SAndroid Build Coastguard Worker	datasets/google_message4/benchmark_message4.proto                        \
20*6777b538SAndroid Build Coastguard Worker	datasets/google_message4/benchmark_message4_1.proto                      \
21*6777b538SAndroid Build Coastguard Worker	datasets/google_message4/benchmark_message4_2.proto                      \
22*6777b538SAndroid Build Coastguard Worker	datasets/google_message4/benchmark_message4_3.proto
23*6777b538SAndroid Build Coastguard Worker
24*6777b538SAndroid Build Coastguard Workermake_tmp_dir:
25*6777b538SAndroid Build Coastguard Worker	mkdir -p 'tmp/java/src/main/java'
26*6777b538SAndroid Build Coastguard Worker	touch make_tmp_dir
27*6777b538SAndroid Build Coastguard Worker
28*6777b538SAndroid Build Coastguard Worker
29*6777b538SAndroid Build Coastguard Worker# We have to cd to $(srcdir) before executing protoc because $(protoc_inputs) is
30*6777b538SAndroid Build Coastguard Worker# relative to srcdir, which may not be the same as the current directory when
31*6777b538SAndroid Build Coastguard Worker# building out-of-tree.
32*6777b538SAndroid Build Coastguard Workerprotoc_middleman: make_tmp_dir $(top_srcdir)/src/protoc$(EXEEXT) $(benchmarks_protoc_inputs) $(well_known_type_protoc_inputs) $(benchmarks_protoc_inputs_benchmark_wrapper)
33*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd/cpp --java_out=$$oldpwd/tmp/java/src/main/java --python_out=$$oldpwd/tmp $(benchmarks_protoc_inputs) $(benchmarks_protoc_inputs_benchmark_wrapper) )
34*6777b538SAndroid Build Coastguard Worker	touch protoc_middleman
35*6777b538SAndroid Build Coastguard Worker
36*6777b538SAndroid Build Coastguard Workerprotoc_middleman2:  make_tmp_dir $(top_srcdir)/src/protoc$(EXEEXT) $(benchmarks_protoc_inputs_proto2) $(well_known_type_protoc_inputs)
37*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd/cpp --java_out=$$oldpwd/tmp/java/src/main/java --python_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_proto2) )
38*6777b538SAndroid Build Coastguard Worker	touch protoc_middleman2
39*6777b538SAndroid Build Coastguard Worker
40*6777b538SAndroid Build Coastguard Workerall_data = $$(find $$(cd $(srcdir) && pwd) -type f -name "dataset.*.pb" -not -path "$$(cd $(srcdir) && pwd)/tmp/*")
41*6777b538SAndroid Build Coastguard Worker
42*6777b538SAndroid Build Coastguard Worker############# CPP RULES ##############
43*6777b538SAndroid Build Coastguard Worker
44*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_outputs =                                                \
45*6777b538SAndroid Build Coastguard Worker	cpp/benchmarks.pb.cc                                                     \
46*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message1/proto3/benchmark_message1_proto3.pb.cc
47*6777b538SAndroid Build Coastguard Worker
48*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_outputs_header =                                         \
49*6777b538SAndroid Build Coastguard Worker	cpp/benchmarks.pb.h                                                      \
50*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message1/proto3/benchmark_message1_proto3.pb.h
51*6777b538SAndroid Build Coastguard Worker
52*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_outputs_proto2_header =                                  \
53*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message1/proto2/benchmark_message1_proto2.pb.h       \
54*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message2/benchmark_message2.pb.h                     \
55*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3.pb.h                     \
56*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_1.pb.h                   \
57*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_2.pb.h                   \
58*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_3.pb.h                   \
59*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_4.pb.h                   \
60*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_5.pb.h                   \
61*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_6.pb.h                   \
62*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_7.pb.h                   \
63*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_8.pb.h                   \
64*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message4/benchmark_message4.pb.h                     \
65*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message4/benchmark_message4_1.pb.h                   \
66*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message4/benchmark_message4_2.pb.h                   \
67*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message4/benchmark_message4_3.pb.h
68*6777b538SAndroid Build Coastguard Worker
69*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_outputs_proto2 =                                         \
70*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message1/proto2/benchmark_message1_proto2.pb.cc      \
71*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message2/benchmark_message2.pb.cc                    \
72*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3.pb.cc                    \
73*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_1.pb.cc                  \
74*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_2.pb.cc                  \
75*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_3.pb.cc                  \
76*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_4.pb.cc                  \
77*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_5.pb.cc                  \
78*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_6.pb.cc                  \
79*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_7.pb.cc                  \
80*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message3/benchmark_message3_8.pb.cc                  \
81*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message4/benchmark_message4.pb.cc                    \
82*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message4/benchmark_message4_1.pb.cc                  \
83*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message4/benchmark_message4_2.pb.cc                  \
84*6777b538SAndroid Build Coastguard Worker	cpp/datasets/google_message4/benchmark_message4_3.pb.cc
85*6777b538SAndroid Build Coastguard Worker
86*6777b538SAndroid Build Coastguard Worker
87*6777b538SAndroid Build Coastguard Worker$(benchmarks_protoc_outputs): protoc_middleman
88*6777b538SAndroid Build Coastguard Worker$(benchmarks_protoc_outputs_header): protoc_middleman
89*6777b538SAndroid Build Coastguard Worker$(benchmarks_protoc_outputs_proto2): protoc_middleman2
90*6777b538SAndroid Build Coastguard Worker$(benchmarks_protoc_outputs_proto2_header): protoc_middleman2
91*6777b538SAndroid Build Coastguard Worker
92*6777b538SAndroid Build Coastguard Workerinitialize_submodule:
93*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd`
94*6777b538SAndroid Build Coastguard Worker	cd $(top_srcdir) && git submodule update --init -r third_party/benchmark && cd third_party/benchmark \
95*6777b538SAndroid Build Coastguard Worker	 && cmake -DCMAKE_BUILD_TYPE=Release && make
96*6777b538SAndroid Build Coastguard Worker	cd $$oldpwd
97*6777b538SAndroid Build Coastguard Worker	touch initialize_submodule
98*6777b538SAndroid Build Coastguard Worker
99*6777b538SAndroid Build Coastguard Worker$(top_srcdir)/third_party/benchmark/src/libbenchmark.a: initialize_submodule
100*6777b538SAndroid Build Coastguard Worker
101*6777b538SAndroid Build Coastguard WorkerAM_CXXFLAGS = $(NO_OPT_CXXFLAGS) $(PROTOBUF_OPT_FLAG) -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare
102*6777b538SAndroid Build Coastguard Worker
103*6777b538SAndroid Build Coastguard Workerbin_PROGRAMS = cpp-benchmark
104*6777b538SAndroid Build Coastguard Worker
105*6777b538SAndroid Build Coastguard Workercpp_benchmark_LDADD = $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/third_party/benchmark/src/libbenchmark.a
106*6777b538SAndroid Build Coastguard Workercpp_benchmark_SOURCES = cpp/cpp_benchmark.cc
107*6777b538SAndroid Build Coastguard Workercpp_benchmark_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(top_srcdir)/third_party/benchmark/include
108*6777b538SAndroid Build Coastguard Worker# Explicit deps because BUILT_SOURCES are only done before a "make all/check"
109*6777b538SAndroid Build Coastguard Worker# so a direct "make test_cpp" could fail if parallel enough.
110*6777b538SAndroid Build Coastguard Worker# See: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Recording-Dependencies-manually
111*6777b538SAndroid Build Coastguard Workercpp/cpp_benchmark-cpp_benchmark.$(OBJEXT): $(benchmarks_protoc_outputs) $(benchmarks_protoc_outputs_proto2) $(benchmarks_protoc_outputs_header) $(benchmarks_protoc_outputs_proto2_header) $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/third_party/benchmark/src/libbenchmark.a
112*6777b538SAndroid Build Coastguard Workercpp/benchmark-cpp_benchmark.$(OBJEXT): $(benchmarks_protoc_outputs) $(benchmarks_protoc_outputs_proto2) $(benchmarks_protoc_outputs_header) $(benchmarks_protoc_outputs_proto2_header) $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/third_party/benchmark/src/libbenchmark.a
113*6777b538SAndroid Build Coastguard Workernodist_cpp_benchmark_SOURCES =                                             \
114*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs)                                             \
115*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2)                                      \
116*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2_header)                               \
117*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_header)
118*6777b538SAndroid Build Coastguard Worker
119*6777b538SAndroid Build Coastguard Workercpp: protoc_middleman protoc_middleman2 cpp-benchmark initialize_submodule
120*6777b538SAndroid Build Coastguard Worker	./cpp-benchmark $(all_data)
121*6777b538SAndroid Build Coastguard Worker
122*6777b538SAndroid Build Coastguard Worker############ CPP RULES END ############
123*6777b538SAndroid Build Coastguard Worker
124*6777b538SAndroid Build Coastguard Worker############# JAVA RULES ##############
125*6777b538SAndroid Build Coastguard Worker
126*6777b538SAndroid Build Coastguard Workerjava_benchmark_testing_files =                                      \
127*6777b538SAndroid Build Coastguard Worker	java/src/main/java/com/google/protobuf/ProtoCaliperBenchmark.java
128*6777b538SAndroid Build Coastguard Worker
129*6777b538SAndroid Build Coastguard Workerjavac_middleman: $(java_benchmark_testing_files) protoc_middleman protoc_middleman2
130*6777b538SAndroid Build Coastguard Worker	cp -r $(srcdir)/java tmp
131*6777b538SAndroid Build Coastguard Worker	mkdir -p tmp/java/lib
132*6777b538SAndroid Build Coastguard Worker	cp $(top_srcdir)/java/core/target/*.jar tmp/java/lib/protobuf-java.jar
133*6777b538SAndroid Build Coastguard Worker	cd tmp/java && mvn clean compile assembly:single -Dprotobuf.version=$(PACKAGE_VERSION) && cd ../..
134*6777b538SAndroid Build Coastguard Worker	@touch javac_middleman
135*6777b538SAndroid Build Coastguard Worker
136*6777b538SAndroid Build Coastguard Workerjava-benchmark: javac_middleman
137*6777b538SAndroid Build Coastguard Worker	@echo "Writing shortcut script java-benchmark..."
138*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > java-benchmark
139*6777b538SAndroid Build Coastguard Worker	@echo 'all_data=""' >> java-benchmark
140*6777b538SAndroid Build Coastguard Worker	@echo 'conf=()' >> java-benchmark
141*6777b538SAndroid Build Coastguard Worker	@echo 'data_files=""' >> java-benchmark
142*6777b538SAndroid Build Coastguard Worker	@echo 'for arg in $$@; do if [[ $${arg:0:1} == "-" ]]; then conf+=($$arg); else data_files+="$$arg,"; fi; done' >> java-benchmark
143*6777b538SAndroid Build Coastguard Worker	@echo 'java -cp '\"tmp/java/target/*:$(top_srcdir)/java/core/target/*:$(top_srcdir)/java/util/target/*\"" \\" >>java-benchmark
144*6777b538SAndroid Build Coastguard Worker	@echo '   com.google.caliper.runner.CaliperMain com.google.protobuf.ProtoCaliperBenchmark -i runtime '"\\"  >> java-benchmark
145*6777b538SAndroid Build Coastguard Worker	@echo '   -b serializeToByteArray,serializeToMemoryStream,deserializeFromByteArray,deserializeFromMemoryStream '"\\" >> java-benchmark
146*6777b538SAndroid Build Coastguard Worker	@echo '   -DdataFile=$${data_files:0:-1} $${conf[*]}' >> java-benchmark
147*6777b538SAndroid Build Coastguard Worker	@chmod +x java-benchmark
148*6777b538SAndroid Build Coastguard Worker
149*6777b538SAndroid Build Coastguard Workerjava: protoc_middleman protoc_middleman2 java-benchmark
150*6777b538SAndroid Build Coastguard Worker	./java-benchmark $(all_data)
151*6777b538SAndroid Build Coastguard Worker
152*6777b538SAndroid Build Coastguard Worker############# JAVA RULES END ##############
153*6777b538SAndroid Build Coastguard Worker
154*6777b538SAndroid Build Coastguard Worker
155*6777b538SAndroid Build Coastguard Worker############# PYTHON RULES ##############
156*6777b538SAndroid Build Coastguard Worker
157*6777b538SAndroid Build Coastguard Workerpython_add_init: protoc_middleman protoc_middleman2
158*6777b538SAndroid Build Coastguard Worker	all_file=`find tmp -type f -regex '.*\.py'` &&                   \
159*6777b538SAndroid Build Coastguard Worker	for file in $${all_file[@]}; do                                  \
160*6777b538SAndroid Build Coastguard Worker		path="$${file%/*}";                                            \
161*6777b538SAndroid Build Coastguard Worker		while true; do                                                 \
162*6777b538SAndroid Build Coastguard Worker			touch "$$path/__init__.py" && chmod +x "$$path/__init__.py"; \
163*6777b538SAndroid Build Coastguard Worker			if [[ $$path != *"/"* ]]; then break; fi;                    \
164*6777b538SAndroid Build Coastguard Worker			path=$${path%/*};                                            \
165*6777b538SAndroid Build Coastguard Worker		done                                                           \
166*6777b538SAndroid Build Coastguard Worker	done
167*6777b538SAndroid Build Coastguard Worker
168*6777b538SAndroid Build Coastguard Workerpython_cpp_pkg_flags = `pkg-config --cflags --libs python3`
169*6777b538SAndroid Build Coastguard Worker
170*6777b538SAndroid Build Coastguard Workerlib_LTLIBRARIES = libbenchmark_messages.la
171*6777b538SAndroid Build Coastguard Workerlibbenchmark_messages_la_SOURCES = python/python_benchmark_messages.cc
172*6777b538SAndroid Build Coastguard Workerlibbenchmark_messages_la_LIBADD = $(top_srcdir)/src/.libs/libprotobuf.la
173*6777b538SAndroid Build Coastguard Workerlibbenchmark_messages_la_LDFLAGS = -version-info 1:0:0 -export-dynamic
174*6777b538SAndroid Build Coastguard Workerlibbenchmark_messages_la_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp $(python_cpp_pkg_flags)
175*6777b538SAndroid Build Coastguard Workerlibbenchmark_messages_la-python_benchmark_messages.$(OBJEXT): $(benchmarks_protoc_outputs_header) $(benchmarks_protoc_outputs_proto2_header) $(benchmarks_protoc_outputs) $(benchmarks_protoc_outputs_proto2)
176*6777b538SAndroid Build Coastguard Workernodist_libbenchmark_messages_la_SOURCES =                         \
177*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs)                                    \
178*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2)                             \
179*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2_header)                      \
180*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_header)
181*6777b538SAndroid Build Coastguard Worker
182*6777b538SAndroid Build Coastguard Workerpython-pure-python-benchmark: python_add_init
183*6777b538SAndroid Build Coastguard Worker	@echo "Writing shortcut script python-pure-python-benchmark..."
184*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > python-pure-python-benchmark
185*6777b538SAndroid Build Coastguard Worker	@echo export LD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-pure-python-benchmark
186*6777b538SAndroid Build Coastguard Worker	@echo export DYLD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-pure-python-benchmark
187*6777b538SAndroid Build Coastguard Worker	@echo export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=\'python\' >> python-pure-python-benchmark
188*6777b538SAndroid Build Coastguard Worker	@echo cp $(srcdir)/python/py_benchmark.py tmp >> python-pure-python-benchmark
189*6777b538SAndroid Build Coastguard Worker	@echo python3 tmp/py_benchmark.py '$$@' >> python-pure-python-benchmark
190*6777b538SAndroid Build Coastguard Worker	@chmod +x python-pure-python-benchmark
191*6777b538SAndroid Build Coastguard Worker
192*6777b538SAndroid Build Coastguard Workerpython-cpp-reflection-benchmark: python_add_init
193*6777b538SAndroid Build Coastguard Worker	@echo "Writing shortcut script python-cpp-reflection-benchmark..."
194*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > python-cpp-reflection-benchmark
195*6777b538SAndroid Build Coastguard Worker	@echo export LD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-cpp-reflection-benchmark
196*6777b538SAndroid Build Coastguard Worker	@echo export DYLD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-cpp-reflection-benchmark
197*6777b538SAndroid Build Coastguard Worker	@echo export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=\'cpp\' >> python-cpp-reflection-benchmark
198*6777b538SAndroid Build Coastguard Worker	@echo cp $(srcdir)/python/py_benchmark.py tmp >> python-cpp-reflection-benchmark
199*6777b538SAndroid Build Coastguard Worker	@echo python3 tmp/py_benchmark.py '$$@' >> python-cpp-reflection-benchmark
200*6777b538SAndroid Build Coastguard Worker	@chmod +x python-cpp-reflection-benchmark
201*6777b538SAndroid Build Coastguard Worker
202*6777b538SAndroid Build Coastguard Workerpython-cpp-generated-code-benchmark: python_add_init libbenchmark_messages.la
203*6777b538SAndroid Build Coastguard Worker	@echo "Writing shortcut script python-cpp-generated-code-benchmark..."
204*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > python-cpp-generated-code-benchmark
205*6777b538SAndroid Build Coastguard Worker	@echo export LD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-cpp-generated-code-benchmark
206*6777b538SAndroid Build Coastguard Worker	@echo export DYLD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-cpp-generated-code-benchmark
207*6777b538SAndroid Build Coastguard Worker	@echo export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=\'cpp\' >> python-cpp-generated-code-benchmark
208*6777b538SAndroid Build Coastguard Worker	@echo cp $(srcdir)/python/py_benchmark.py tmp >> python-cpp-generated-code-benchmark
209*6777b538SAndroid Build Coastguard Worker	@echo python3 tmp/py_benchmark.py --cpp_generated '$$@' >> python-cpp-generated-code-benchmark
210*6777b538SAndroid Build Coastguard Worker	@chmod +x python-cpp-generated-code-benchmark
211*6777b538SAndroid Build Coastguard Worker
212*6777b538SAndroid Build Coastguard Workerpython-pure-python: python-pure-python-benchmark
213*6777b538SAndroid Build Coastguard Worker	./python-pure-python-benchmark $(all_data)
214*6777b538SAndroid Build Coastguard Worker
215*6777b538SAndroid Build Coastguard Workerpython-cpp-reflection: python-cpp-reflection-benchmark
216*6777b538SAndroid Build Coastguard Worker	./python-cpp-reflection-benchmark $(all_data)
217*6777b538SAndroid Build Coastguard Worker
218*6777b538SAndroid Build Coastguard Workerpython-cpp-generated-code: python-cpp-generated-code-benchmark
219*6777b538SAndroid Build Coastguard Worker	./python-cpp-generated-code-benchmark $(all_data)
220*6777b538SAndroid Build Coastguard Worker
221*6777b538SAndroid Build Coastguard Worker############# PYTHON RULES END ##############
222*6777b538SAndroid Build Coastguard Worker
223*6777b538SAndroid Build Coastguard Worker############# GO RULES BEGIN ##############
224*6777b538SAndroid Build Coastguard Worker
225*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_inputs_proto2_message1 =                                 \
226*6777b538SAndroid Build Coastguard Worker	datasets/google_message1/proto2/benchmark_message1_proto2.proto
227*6777b538SAndroid Build Coastguard Worker
228*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_inputs_proto2_message2 =                                 \
229*6777b538SAndroid Build Coastguard Worker	datasets/google_message2/benchmark_message2.proto
230*6777b538SAndroid Build Coastguard Worker
231*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_inputs_proto2_message3 =                                 \
232*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3.proto                        \
233*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_1.proto                      \
234*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_2.proto                      \
235*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_3.proto                      \
236*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_4.proto                      \
237*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_5.proto                      \
238*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_6.proto                      \
239*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_7.proto                      \
240*6777b538SAndroid Build Coastguard Worker	datasets/google_message3/benchmark_message3_8.proto
241*6777b538SAndroid Build Coastguard Worker
242*6777b538SAndroid Build Coastguard Workerbenchmarks_protoc_inputs_proto2_message4 =                                 \
243*6777b538SAndroid Build Coastguard Worker	datasets/google_message4/benchmark_message4.proto                        \
244*6777b538SAndroid Build Coastguard Worker	datasets/google_message4/benchmark_message4_1.proto                      \
245*6777b538SAndroid Build Coastguard Worker	datasets/google_message4/benchmark_message4_2.proto                      \
246*6777b538SAndroid Build Coastguard Worker	datasets/google_message4/benchmark_message4_3.proto
247*6777b538SAndroid Build Coastguard Worker
248*6777b538SAndroid Build Coastguard Workergo_protoc_middleman: make_tmp_dir $(top_srcdir)/src/protoc$(EXEEXT) $(benchmarks_protoc_inputs) $(well_known_type_protoc_inputs) $(benchmarks_protoc_inputs_proto2_message1) $(benchmarks_protoc_inputs_proto2_message2) $(benchmarks_protoc_inputs_proto2_message3) $(benchmarks_protoc_inputs_proto2_message4) $(well_known_type_protoc_inputs)
249*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs) )
250*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_benchmark_wrapper) )
251*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_proto2_message1) )
252*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_proto2_message2) )
253*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_proto2_message3) )
254*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_proto2_message4) )
255*6777b538SAndroid Build Coastguard Worker	touch go_protoc_middleman
256*6777b538SAndroid Build Coastguard Worker
257*6777b538SAndroid Build Coastguard Workergo-benchmark: go_protoc_middleman
258*6777b538SAndroid Build Coastguard Worker	@echo "Writing shortcut script go-benchmark..."
259*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > go-benchmark
260*6777b538SAndroid Build Coastguard Worker	@echo 'cd $(srcdir)/go' >> go-benchmark
261*6777b538SAndroid Build Coastguard Worker	@echo 'all_data=""' >> go-benchmark
262*6777b538SAndroid Build Coastguard Worker	@echo 'conf=()' >> go-benchmark
263*6777b538SAndroid Build Coastguard Worker	@echo 'data_files=()' >> go-benchmark
264*6777b538SAndroid Build Coastguard Worker	@echo 'for arg in $$@; do if [[ $${arg:0:1} == "-" ]]; then conf+=($$arg); else data_files+=("$$arg"); fi; done' >> go-benchmark
265*6777b538SAndroid Build Coastguard Worker	@echo 'go test -bench=. $${conf[*]} -- $${data_files[*]}' >> go-benchmark
266*6777b538SAndroid Build Coastguard Worker	@echo 'cd ..' >> go-benchmark
267*6777b538SAndroid Build Coastguard Worker	@chmod +x go-benchmark
268*6777b538SAndroid Build Coastguard Worker
269*6777b538SAndroid Build Coastguard Workergo: go_protoc_middleman go-benchmark
270*6777b538SAndroid Build Coastguard Worker	./go-benchmark $(all_data)
271*6777b538SAndroid Build Coastguard Worker
272*6777b538SAndroid Build Coastguard Worker############# GO RULES END ##############
273*6777b538SAndroid Build Coastguard Worker
274*6777b538SAndroid Build Coastguard Worker############# GOGO RULES BEGIN ############
275*6777b538SAndroid Build Coastguard Worker
276*6777b538SAndroid Build Coastguard Workercpp_no_group_benchmarks_protoc_outputs_header =                             \
277*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/benchmarks.pb.h                                         \
278*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message1/proto3/benchmark_message1_proto3.pb.h
279*6777b538SAndroid Build Coastguard Worker
280*6777b538SAndroid Build Coastguard Workercpp_no_group_benchmarks_protoc_outputs =                                    \
281*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/benchmarks.pb.cc                                        \
282*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message1/proto3/benchmark_message1_proto3.pb.cc
283*6777b538SAndroid Build Coastguard Worker
284*6777b538SAndroid Build Coastguard Workercpp_no_group_benchmarks_protoc_outputs_proto2_header =                      \
285*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message1/proto2/benchmark_message1_proto2.pb.h \
286*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message2/benchmark_message2.pb.h        \
287*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3.pb.h        \
288*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_1.pb.h      \
289*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_2.pb.h      \
290*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_3.pb.h      \
291*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_4.pb.h      \
292*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_5.pb.h      \
293*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_6.pb.h      \
294*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_7.pb.h      \
295*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_8.pb.h      \
296*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message4/benchmark_message4.pb.h        \
297*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_1.pb.h      \
298*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_2.pb.h      \
299*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_3.pb.h
300*6777b538SAndroid Build Coastguard Worker
301*6777b538SAndroid Build Coastguard Workercpp_no_group_benchmarks_protoc_outputs_proto2 =                             \
302*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message1/proto2/benchmark_message1_proto2.pb.cc \
303*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message2/benchmark_message2.pb.cc       \
304*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3.pb.cc       \
305*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_1.pb.cc     \
306*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_2.pb.cc     \
307*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_3.pb.cc     \
308*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_4.pb.cc     \
309*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_5.pb.cc     \
310*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_6.pb.cc     \
311*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_7.pb.cc     \
312*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_8.pb.cc     \
313*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message4/benchmark_message4.pb.cc       \
314*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_1.pb.cc     \
315*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_2.pb.cc     \
316*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_3.pb.cc
317*6777b538SAndroid Build Coastguard Worker
318*6777b538SAndroid Build Coastguard Worker$(cpp_no_group_benchmarks_protoc_outputs): cpp_no_group_protoc_middleman
319*6777b538SAndroid Build Coastguard Worker$(cpp_no_group_benchmarks_protoc_outputs_header): cpp_no_group_protoc_middleman
320*6777b538SAndroid Build Coastguard Worker$(cpp_no_group_benchmarks_protoc_outputs_proto2): cpp_no_group_protoc_middleman
321*6777b538SAndroid Build Coastguard Worker$(cpp_no_group_benchmarks_protoc_outputs_proto2_header): cpp_no_group_protoc_middleman
322*6777b538SAndroid Build Coastguard Worker
323*6777b538SAndroid Build Coastguard Workergenerate_cpp_no_group_benchmark_code:
324*6777b538SAndroid Build Coastguard Worker	cp $(srcdir)/cpp/cpp_benchmark.cc gogo/cpp_no_group/cpp_benchmark.cc
325*6777b538SAndroid Build Coastguard Worker	sed -i -e "s/\#include \"datasets/\#include \"gogo\/cpp_no_group\/datasets/g" gogo/cpp_no_group/cpp_benchmark.cc
326*6777b538SAndroid Build Coastguard Worker	sed -i -e "s/\#include \"benchmarks.pb.h/\#include \"gogo\/cpp_no_group\/benchmarks.pb.h/g" gogo/cpp_no_group/cpp_benchmark.cc
327*6777b538SAndroid Build Coastguard Worker	touch generate_cpp_no_group_benchmark_code
328*6777b538SAndroid Build Coastguard Worker
329*6777b538SAndroid Build Coastguard Workerbin_PROGRAMS += cpp-no-group-benchmark
330*6777b538SAndroid Build Coastguard Workercpp_no_group_benchmark_LDADD = $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/third_party/benchmark/src/libbenchmark.a
331*6777b538SAndroid Build Coastguard Workercpp_no_group_benchmark_SOURCES = gogo/cpp_no_group/cpp_benchmark.cc
332*6777b538SAndroid Build Coastguard Workercpp_no_group_benchmark_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/gogo/cpp_no_group -I$(top_srcdir)/third_party/benchmark/include
333*6777b538SAndroid Build Coastguard Worker# Explicit deps because BUILT_SOURCES are only done before a "make all/check"
334*6777b538SAndroid Build Coastguard Worker# so a direct "make test_cpp" could fail if parallel enough.
335*6777b538SAndroid Build Coastguard Worker# See: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Recording-Dependencies-manually
336*6777b538SAndroid Build Coastguard Workergogo/cpp_no_group/cpp_no_group_benchmark-cpp_benchmark.$(OBJEXT): $(cpp_no_group_benchmarks_protoc_outputs) $(cpp_no_group_benchmarks_protoc_outputs_proto2) $(cpp_no_group_benchmarks_protoc_outputs_header) \
337*6777b538SAndroid Build Coastguard Worker	$(cpp_no_group_benchmarks_protoc_outputs_proto2_header) $(top_srcdir)/third_party/benchmark/src/libbenchmark.a generate_cpp_no_group_benchmark_code
338*6777b538SAndroid Build Coastguard Workergogo/cpp_no_group/cpp_benchmark.cc: generate_cpp_no_group_benchmark_code
339*6777b538SAndroid Build Coastguard Workernodist_cpp_no_group_benchmark_SOURCES =                                    \
340*6777b538SAndroid Build Coastguard Worker	$(cpp_no_group_benchmarks_protoc_outputs_proto2)                         \
341*6777b538SAndroid Build Coastguard Worker	$(cpp_no_group_benchmarks_protoc_outputs)                                \
342*6777b538SAndroid Build Coastguard Worker	$(cpp_no_group_benchmarks_protoc_outputs_header)                         \
343*6777b538SAndroid Build Coastguard Worker	$(cpp_no_group_benchmarks_protoc_outputs_proto2_header)
344*6777b538SAndroid Build Coastguard Worker
345*6777b538SAndroid Build Coastguard Workercpp_no_group: cpp_no_group_protoc_middleman generate_gogo_data cpp-no-group-benchmark
346*6777b538SAndroid Build Coastguard Worker	./cpp-no-group-benchmark $(gogo_data)
347*6777b538SAndroid Build Coastguard Worker
348*6777b538SAndroid Build Coastguard Workergogo_proto_middleman: protoc-gen-gogoproto
349*6777b538SAndroid Build Coastguard Worker	mkdir -p "tmp/gogo_proto"
350*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I$(srcdir) -I$(top_srcdir) --plugin=protoc-gen-gogoproto --gogoproto_out=$$oldpwd/tmp/gogo_proto $(benchmarks_protoc_inputs) $(benchmarks_protoc_inputs_benchmark_wrapper) $(benchmarks_protoc_inputs_proto2) )
351*6777b538SAndroid Build Coastguard Worker	touch gogo_proto_middleman
352*6777b538SAndroid Build Coastguard Worker
353*6777b538SAndroid Build Coastguard Workergogo_data = $$(for data in $(all_data); do echo "tmp/gogo_data$${data\#$(srcdir)}"; done | xargs)
354*6777b538SAndroid Build Coastguard Worker
355*6777b538SAndroid Build Coastguard Workergenerate_gogo_data: protoc_middleman protoc_middleman2 gogo-data-scrubber
356*6777b538SAndroid Build Coastguard Worker	mkdir -p `dirname $(gogo_data)`
357*6777b538SAndroid Build Coastguard Worker	./gogo-data-scrubber $(all_data) $(gogo_data)
358*6777b538SAndroid Build Coastguard Worker	touch generate_gogo_data
359*6777b538SAndroid Build Coastguard Worker
360*6777b538SAndroid Build Coastguard Workermake_tmp_dir_gogo:
361*6777b538SAndroid Build Coastguard Worker	mkdir -p tmp/go_no_group/benchmark_code
362*6777b538SAndroid Build Coastguard Worker	mkdir -p tmp/gogofast/benchmark_code
363*6777b538SAndroid Build Coastguard Worker	mkdir -p tmp/gogofaster/benchmark_code
364*6777b538SAndroid Build Coastguard Worker	mkdir -p tmp/gogoslick/benchmark_code
365*6777b538SAndroid Build Coastguard Worker	touch make_tmp_dir_gogo
366*6777b538SAndroid Build Coastguard Worker
367*6777b538SAndroid Build Coastguard Workergo_no_group_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
368*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --go_out=$$oldpwd/tmp/go_no_group $(benchmarks_protoc_inputs) )
369*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --go_out=$$oldpwd/tmp/go_no_group $(benchmarks_protoc_inputs_benchmark_wrapper) )
370*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --go_out=$$oldpwd/tmp/go_no_group $(benchmarks_protoc_inputs_proto2_message1) )
371*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --go_out=$$oldpwd/tmp/go_no_group $(benchmarks_protoc_inputs_proto2_message2) )
372*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --go_out=$$oldpwd/tmp/go_no_group $(benchmarks_protoc_inputs_proto2_message3) )
373*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --go_out=$$oldpwd/tmp/go_no_group $(benchmarks_protoc_inputs_proto2_message4) )
374*6777b538SAndroid Build Coastguard Worker	touch go_no_group_protoc_middleman
375*6777b538SAndroid Build Coastguard Worker
376*6777b538SAndroid Build Coastguard Workercpp_no_group_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
377*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --cpp_out=$$oldpwd/gogo/cpp_no_group $(benchmarks_protoc_inputs) )
378*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --cpp_out=$$oldpwd/gogo/cpp_no_group $(benchmarks_protoc_inputs_benchmark_wrapper) )
379*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --cpp_out=$$oldpwd/gogo/cpp_no_group $(benchmarks_protoc_inputs_proto2_message1) )
380*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --cpp_out=$$oldpwd/gogo/cpp_no_group $(benchmarks_protoc_inputs_proto2_message2) )
381*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --cpp_out=$$oldpwd/gogo/cpp_no_group $(benchmarks_protoc_inputs_proto2_message3) )
382*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --cpp_out=$$oldpwd/gogo/cpp_no_group $(benchmarks_protoc_inputs_proto2_message4) )
383*6777b538SAndroid Build Coastguard Worker	touch cpp_no_group_protoc_middleman
384*6777b538SAndroid Build Coastguard Worker
385*6777b538SAndroid Build Coastguard Workergogofast_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
386*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofast_out=$$oldpwd/tmp/gogofast $(benchmarks_protoc_inputs) )
387*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofast_out=$$oldpwd/tmp/gogofast $(benchmarks_protoc_inputs_benchmark_wrapper) )
388*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofast_out=$$oldpwd/tmp/gogofast $(benchmarks_protoc_inputs_proto2_message1) )
389*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofast_out=$$oldpwd/tmp/gogofast $(benchmarks_protoc_inputs_proto2_message2) )
390*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofast_out=$$oldpwd/tmp/gogofast $(benchmarks_protoc_inputs_proto2_message3) )
391*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofast_out=$$oldpwd/tmp/gogofast $(benchmarks_protoc_inputs_proto2_message4) )
392*6777b538SAndroid Build Coastguard Worker	touch gogofast_protoc_middleman
393*6777b538SAndroid Build Coastguard Worker
394*6777b538SAndroid Build Coastguard Workergogofaster_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
395*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofaster_out=$$oldpwd/tmp/gogofaster $(benchmarks_protoc_inputs) )
396*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofaster_out=$$oldpwd/tmp/gogofaster $(benchmarks_protoc_inputs_benchmark_wrapper) )
397*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofaster_out=$$oldpwd/tmp/gogofaster $(benchmarks_protoc_inputs_proto2_message1) )
398*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofaster_out=$$oldpwd/tmp/gogofaster $(benchmarks_protoc_inputs_proto2_message2) )
399*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofaster_out=$$oldpwd/tmp/gogofaster $(benchmarks_protoc_inputs_proto2_message3) )
400*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogofaster_out=$$oldpwd/tmp/gogofaster $(benchmarks_protoc_inputs_proto2_message4) )
401*6777b538SAndroid Build Coastguard Worker	touch gogofaster_protoc_middleman
402*6777b538SAndroid Build Coastguard Worker
403*6777b538SAndroid Build Coastguard Workergogoslick_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
404*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogoslick_out=$$oldpwd/tmp/gogoslick $(benchmarks_protoc_inputs) )
405*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogoslick_out=$$oldpwd/tmp/gogoslick $(benchmarks_protoc_inputs_benchmark_wrapper) )
406*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogoslick_out=$$oldpwd/tmp/gogoslick $(benchmarks_protoc_inputs_proto2_message1) )
407*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogoslick_out=$$oldpwd/tmp/gogoslick $(benchmarks_protoc_inputs_proto2_message2) )
408*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogoslick_out=$$oldpwd/tmp/gogoslick $(benchmarks_protoc_inputs_proto2_message3) )
409*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir)/tmp/gogo_proto && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$$oldpwd/$(top_srcdir)/src --gogoslick_out=$$oldpwd/tmp/gogoslick $(benchmarks_protoc_inputs_proto2_message4) )
410*6777b538SAndroid Build Coastguard Worker	touch gogoslick_protoc_middleman
411*6777b538SAndroid Build Coastguard Worker
412*6777b538SAndroid Build Coastguard Workergenerate-gogo-benchmark-code:
413*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > generate-gogo-benchmark-code
414*6777b538SAndroid Build Coastguard Worker	@echo 'cp $(srcdir)/go/go_benchmark_test.go tmp/$$1/benchmark_code/$$1_benchmark1_test.go' >> generate-gogo-benchmark-code
415*6777b538SAndroid Build Coastguard Worker	@echo 'sed -i -e "s/\.\.\/tmp/../g" tmp/$$1/benchmark_code/$$1_benchmark1_test.go' >> generate-gogo-benchmark-code
416*6777b538SAndroid Build Coastguard Worker	@echo 'sed -i -e "s/b\.Run(\"\(.*\)\"/b.Run(\"\1\_$$1\"/g" tmp/$$1/benchmark_code/$$1_benchmark1_test.go' >> generate-gogo-benchmark-code
417*6777b538SAndroid Build Coastguard Worker	@echo 'if [[ $$2 == 1 ]]; then sed -i -e "s/github\.com\/golang/github.com\/gogo/g" tmp/$$1/benchmark_code/$$1_benchmark1_test.go; fi ' >> generate-gogo-benchmark-code
418*6777b538SAndroid Build Coastguard Worker	@chmod +x generate-gogo-benchmark-code
419*6777b538SAndroid Build Coastguard Worker
420*6777b538SAndroid Build Coastguard Workergenerate_all_gogo_benchmark_code: generate-gogo-benchmark-code make_tmp_dir_gogo
421*6777b538SAndroid Build Coastguard Worker	./generate-gogo-benchmark-code go_no_group 0
422*6777b538SAndroid Build Coastguard Worker	./generate-gogo-benchmark-code gogofast 1
423*6777b538SAndroid Build Coastguard Worker	./generate-gogo-benchmark-code gogofaster 1
424*6777b538SAndroid Build Coastguard Worker	./generate-gogo-benchmark-code gogoslick 1
425*6777b538SAndroid Build Coastguard Worker
426*6777b538SAndroid Build Coastguard Workergogo-benchmark:
427*6777b538SAndroid Build Coastguard Worker	@echo "Writing shortcut script gogo-benchmark..."
428*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > gogo-benchmark
429*6777b538SAndroid Build Coastguard Worker	@echo 'cd tmp/$$1/benchmark_code' >> gogo-benchmark
430*6777b538SAndroid Build Coastguard Worker	@echo 'shift' >> gogo-benchmark
431*6777b538SAndroid Build Coastguard Worker	@echo 'all_data=""' >> gogo-benchmark
432*6777b538SAndroid Build Coastguard Worker	@echo 'for data_file in $$@; do all_data="$$all_data ../../../$$data_file"; done' >> gogo-benchmark
433*6777b538SAndroid Build Coastguard Worker	@echo 'go test -bench=. -- $$all_data' >> gogo-benchmark
434*6777b538SAndroid Build Coastguard Worker	@echo 'cd ../..' >> gogo-benchmark
435*6777b538SAndroid Build Coastguard Worker	@chmod +x gogo-benchmark
436*6777b538SAndroid Build Coastguard Worker
437*6777b538SAndroid Build Coastguard Workergo_no_group: go_no_group_protoc_middleman generate_gogo_data generate_all_gogo_benchmark_code gogo-benchmark
438*6777b538SAndroid Build Coastguard Worker	./gogo-benchmark go_no_group $(gogo_data)
439*6777b538SAndroid Build Coastguard Worker
440*6777b538SAndroid Build Coastguard Workergogofast: gogofast_protoc_middleman generate_gogo_data gogo-benchmark generate_all_gogo_benchmark_code
441*6777b538SAndroid Build Coastguard Worker	./gogo-benchmark gogofast $(gogo_data)
442*6777b538SAndroid Build Coastguard Worker
443*6777b538SAndroid Build Coastguard Workergogofaster: gogofaster_protoc_middleman  generate_gogo_data gogo-benchmark generate_all_gogo_benchmark_code
444*6777b538SAndroid Build Coastguard Worker	./gogo-benchmark gogofaster $(gogo_data)
445*6777b538SAndroid Build Coastguard Worker
446*6777b538SAndroid Build Coastguard Workergogoslick: gogoslick_protoc_middleman  generate_gogo_data gogo-benchmark generate_all_gogo_benchmark_code
447*6777b538SAndroid Build Coastguard Worker	./gogo-benchmark gogoslick $(gogo_data)
448*6777b538SAndroid Build Coastguard Worker
449*6777b538SAndroid Build Coastguard Worker
450*6777b538SAndroid Build Coastguard Worker############# GOGO RULES END ############
451*6777b538SAndroid Build Coastguard Worker
452*6777b538SAndroid Build Coastguard Worker
453*6777b538SAndroid Build Coastguard Worker############ UTIL RULES BEGIN ############
454*6777b538SAndroid Build Coastguard Worker
455*6777b538SAndroid Build Coastguard Workerbin_PROGRAMS += protoc-gen-gogoproto gogo-data-scrubber protoc-gen-proto2_to_proto3 proto3-data-stripper
456*6777b538SAndroid Build Coastguard Worker
457*6777b538SAndroid Build Coastguard Workerprotoc_gen_gogoproto_LDADD = $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/src/libprotoc.la
458*6777b538SAndroid Build Coastguard Workerprotoc_gen_gogoproto_SOURCES = util/protoc-gen-gogoproto.cc
459*6777b538SAndroid Build Coastguard Workerprotoc_gen_gogoproto_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(srcdir)/util
460*6777b538SAndroid Build Coastguard Worker
461*6777b538SAndroid Build Coastguard Workergogo_data_scrubber_LDADD = $(top_srcdir)/src/libprotobuf.la
462*6777b538SAndroid Build Coastguard Workergogo_data_scrubber_SOURCES = util/gogo_data_scrubber.cc
463*6777b538SAndroid Build Coastguard Workergogo_data_scrubber_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(srcdir)/util
464*6777b538SAndroid Build Coastguard Workerutil/gogo_data_scrubber-gogo_data_scrubber.$(OBJEXT): $(benchmarks_protoc_outputs) $(benchmarks_protoc_outputs_proto2) $(benchmarks_protoc_outputs_header) $(benchmarks_protoc_outputs_proto2_header)
465*6777b538SAndroid Build Coastguard Workernodist_gogo_data_scrubber_SOURCES =                                        \
466*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs)                                             \
467*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2)                                      \
468*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2_header)                               \
469*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_header)
470*6777b538SAndroid Build Coastguard Worker
471*6777b538SAndroid Build Coastguard Workerprotoc_gen_proto2_to_proto3_LDADD = $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/src/libprotoc.la
472*6777b538SAndroid Build Coastguard Workerprotoc_gen_proto2_to_proto3_SOURCES = util/protoc-gen-proto2_to_proto3.cc
473*6777b538SAndroid Build Coastguard Workerprotoc_gen_proto2_to_proto3_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(srcdir)/util
474*6777b538SAndroid Build Coastguard Worker
475*6777b538SAndroid Build Coastguard Workerproto3_data_stripper_LDADD = $(top_srcdir)/src/libprotobuf.la
476*6777b538SAndroid Build Coastguard Workerproto3_data_stripper_SOURCES = util/proto3_data_stripper.cc
477*6777b538SAndroid Build Coastguard Workerproto3_data_stripper_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(srcdir)/util
478*6777b538SAndroid Build Coastguard Workerutil/proto3_data_stripper-proto3_data_stripper.$(OBJEXT): $(benchmarks_protoc_outputs) $(benchmarks_protoc_outputs_proto2) $(benchmarks_protoc_outputs_header) $(benchmarks_protoc_outputs_proto2_header)
479*6777b538SAndroid Build Coastguard Workernodist_proto3_data_stripper_SOURCES =                                      \
480*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs)                                             \
481*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2)                                      \
482*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2_header)                               \
483*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_header)
484*6777b538SAndroid Build Coastguard Worker
485*6777b538SAndroid Build Coastguard Worker
486*6777b538SAndroid Build Coastguard Worker############ UTIL RULES END ############
487*6777b538SAndroid Build Coastguard Worker
488*6777b538SAndroid Build Coastguard Worker############ PROTO3 PREPARATION BEGIN #############
489*6777b538SAndroid Build Coastguard Worker
490*6777b538SAndroid Build Coastguard Workerproto3_proto_middleman: protoc-gen-proto2_to_proto3
491*6777b538SAndroid Build Coastguard Worker	mkdir -p "tmp/proto3_proto"
492*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I$(srcdir) -I$(top_srcdir) --plugin=protoc-gen-proto2_to_proto3 --proto2_to_proto3_out=$$oldpwd/tmp/proto3_proto $(benchmarks_protoc_inputs) $(benchmarks_protoc_inputs_benchmark_wrapper) $(benchmarks_protoc_inputs_proto2) )
493*6777b538SAndroid Build Coastguard Worker	touch proto3_proto_middleman
494*6777b538SAndroid Build Coastguard Worker
495*6777b538SAndroid Build Coastguard Workerfull_srcdir = $$(cd $(srcdir) && pwd)
496*6777b538SAndroid Build Coastguard Workerproto3_data = $$(for data in $(all_data); do echo $(full_srcdir)"/tmp/proto3_data$${data\#$(full_srcdir)}"; done | xargs)
497*6777b538SAndroid Build Coastguard Worker
498*6777b538SAndroid Build Coastguard Workergenerate_proto3_data: protoc_middleman protoc_middleman2 proto3-data-stripper
499*6777b538SAndroid Build Coastguard Worker	mkdir -p `dirname $(proto3_data)`
500*6777b538SAndroid Build Coastguard Worker	./proto3-data-stripper $(all_data) $(proto3_data)
501*6777b538SAndroid Build Coastguard Worker	touch generate_proto3_data
502*6777b538SAndroid Build Coastguard Worker
503*6777b538SAndroid Build Coastguard Worker############ PROTO3 PREPARATION END #############
504*6777b538SAndroid Build Coastguard Worker
505*6777b538SAndroid Build Coastguard Worker############ PHP RULES BEGIN #################
506*6777b538SAndroid Build Coastguard Worker
507*6777b538SAndroid Build Coastguard Workerproto3_middleman_php: proto3_proto_middleman
508*6777b538SAndroid Build Coastguard Worker	mkdir -p "tmp/php"
509*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd tmp/proto3_proto && $$oldpwd/../src/protoc$(EXEEXT) -I$(srcdir) -I$(top_srcdir) --php_out=$$oldpwd/tmp/php $(benchmarks_protoc_inputs) $(benchmarks_protoc_inputs_benchmark_wrapper) $(benchmarks_protoc_inputs_proto2) )
510*6777b538SAndroid Build Coastguard Worker	touch proto3_middleman_php
511*6777b538SAndroid Build Coastguard Worker
512*6777b538SAndroid Build Coastguard Workerphp-benchmark: proto3_middleman_php generate_proto3_data
513*6777b538SAndroid Build Coastguard Worker	mkdir -p "tmp/php/Google/Protobuf/Benchmark" && cp php/PhpBenchmark.php "tmp/php/Google/Protobuf/Benchmark"
514*6777b538SAndroid Build Coastguard Worker	cp php/autoload.php "tmp/php"
515*6777b538SAndroid Build Coastguard Worker	@echo "Writing shortcut script php-benchmark..."
516*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > php-benchmark
517*6777b538SAndroid Build Coastguard Worker	@echo 'export PROTOBUF_PHP_SRCDIR="$$(cd $(top_srcdir) && pwd)/php/src"' >> php-benchmark
518*6777b538SAndroid Build Coastguard Worker	@echo 'cd tmp/php' >> php-benchmark
519*6777b538SAndroid Build Coastguard Worker	@echo 'export CURRENT_DIR=$$(pwd)' >> php-benchmark
520*6777b538SAndroid Build Coastguard Worker	@echo 'php -d auto_prepend_file="autoload.php" -d include_path="$$(pwd)" Google/Protobuf/Benchmark/PhpBenchmark.php $$@' >> php-benchmark
521*6777b538SAndroid Build Coastguard Worker	@echo 'cd ../..' >> php-benchmark
522*6777b538SAndroid Build Coastguard Worker	@chmod +x php-benchmark
523*6777b538SAndroid Build Coastguard Worker
524*6777b538SAndroid Build Coastguard Workerphp: php-benchmark proto3_middleman_php
525*6777b538SAndroid Build Coastguard Worker	./php-benchmark --behavior_prefix="php" $(proto3_data)
526*6777b538SAndroid Build Coastguard Worker
527*6777b538SAndroid Build Coastguard Workerphp_c_extension:
528*6777b538SAndroid Build Coastguard Worker	cd $(top_srcdir)/php/ext/google/protobuf && phpize && ./configure CFLAGS='-O3' && make -j8
529*6777b538SAndroid Build Coastguard Worker
530*6777b538SAndroid Build Coastguard Workerphp-c-benchmark: proto3_middleman_php generate_proto3_data php_c_extension php_c_extension
531*6777b538SAndroid Build Coastguard Worker	mkdir -p "tmp/php/Google/Protobuf/Benchmark" && cp php/PhpBenchmark.php "tmp/php/Google/Protobuf/Benchmark"
532*6777b538SAndroid Build Coastguard Worker	cp php/autoload.php "tmp/php"
533*6777b538SAndroid Build Coastguard Worker	@echo "Writing shortcut script php-c-benchmark..."
534*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > php-c-benchmark
535*6777b538SAndroid Build Coastguard Worker	@echo 'export PROTOBUF_PHP_SRCDIR="$$(cd $(top_srcdir) && pwd)/php/src"' >> php-c-benchmark
536*6777b538SAndroid Build Coastguard Worker	@echo 'export PROTOBUF_PHP_EXTDIR="$$PROTOBUF_PHP_SRCDIR/../ext/google/protobuf/modules"' >> php-c-benchmark
537*6777b538SAndroid Build Coastguard Worker	@echo 'cd tmp/php' >> php-c-benchmark
538*6777b538SAndroid Build Coastguard Worker	@echo 'export CURRENT_DIR=$$(pwd)' >> php-c-benchmark
539*6777b538SAndroid Build Coastguard Worker	@echo 'php -d auto_prepend_file="autoload.php" -d include_path="$$(pwd)" -d extension="$$PROTOBUF_PHP_EXTDIR/protobuf.so" Google/Protobuf/Benchmark/PhpBenchmark.php $$@' >> php-c-benchmark
540*6777b538SAndroid Build Coastguard Worker	@echo 'cd ../..' >> php-c-benchmark
541*6777b538SAndroid Build Coastguard Worker	@chmod +x php-c-benchmark
542*6777b538SAndroid Build Coastguard Worker
543*6777b538SAndroid Build Coastguard Workerphp_c: php-c-benchmark proto3_middleman_php
544*6777b538SAndroid Build Coastguard Worker	./php-c-benchmark --behavior_prefix="php_c" $(proto3_data)
545*6777b538SAndroid Build Coastguard Worker
546*6777b538SAndroid Build Coastguard Worker
547*6777b538SAndroid Build Coastguard Worker############ PHP RULES END #################
548*6777b538SAndroid Build Coastguard Worker
549*6777b538SAndroid Build Coastguard Worker############ protobuf.js RULE BEGIN #############
550*6777b538SAndroid Build Coastguard Worker
551*6777b538SAndroid Build Coastguard Workerpbjs_preparation:
552*6777b538SAndroid Build Coastguard Worker	mkdir -p tmp/protobuf.js
553*6777b538SAndroid Build Coastguard Worker	cd tmp/protobuf.js && git clone https://github.com/dcodeIO/protobuf.js.git && \
554*6777b538SAndroid Build Coastguard Worker			cd protobuf.js && npm install && npm run build
555*6777b538SAndroid Build Coastguard Worker	cd tmp/protobuf.js && npm install benchmark
556*6777b538SAndroid Build Coastguard Worker	cp protobuf.js/* tmp/protobuf.js
557*6777b538SAndroid Build Coastguard Worker	cp js/benchmark_suite.js tmp/protobuf.js
558*6777b538SAndroid Build Coastguard Worker	touch pbjs_preparation
559*6777b538SAndroid Build Coastguard Worker
560*6777b538SAndroid Build Coastguard Workerpbjs_middleman: pbjs_preparation
561*6777b538SAndroid Build Coastguard Worker	export OLDDIR=$$(pwd) && cd tmp/protobuf.js && node generate_pbjs_files.js --target static-module --include_path=$$OLDDIR -o generated_bundle_code.js $(benchmarks_protoc_inputs) $(benchmarks_protoc_inputs_benchmark_wrapper) $(benchmarks_protoc_inputs_proto2)
562*6777b538SAndroid Build Coastguard Worker	touch pbjs_middleman
563*6777b538SAndroid Build Coastguard Worker
564*6777b538SAndroid Build Coastguard Workerpbjs-benchmark: pbjs_middleman
565*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > pbjs-benchmark
566*6777b538SAndroid Build Coastguard Worker	@echo 'cd tmp/protobuf.js' >> pbjs-benchmark
567*6777b538SAndroid Build Coastguard Worker	@echo 'sed -i "s/protobufjs/.\/protobuf.js/g" generated_bundle_code.js' >> pbjs-benchmark
568*6777b538SAndroid Build Coastguard Worker	@echo 'env NODE_PATH=".:./node_modules:$$NODE_PATH" node protobufjs_benchmark.js $$@' >> pbjs-benchmark
569*6777b538SAndroid Build Coastguard Worker	@chmod +x pbjs-benchmark
570*6777b538SAndroid Build Coastguard Worker
571*6777b538SAndroid Build Coastguard Workerpbjs: pbjs-benchmark
572*6777b538SAndroid Build Coastguard Worker	./pbjs-benchmark $(all_data)
573*6777b538SAndroid Build Coastguard Worker
574*6777b538SAndroid Build Coastguard Worker############ protobuf.js RULE END #############
575*6777b538SAndroid Build Coastguard Worker
576*6777b538SAndroid Build Coastguard Worker############ JS RULE BEGIN #############
577*6777b538SAndroid Build Coastguard Worker
578*6777b538SAndroid Build Coastguard Workerjs_preparation:
579*6777b538SAndroid Build Coastguard Worker	mkdir -p tmp/js
580*6777b538SAndroid Build Coastguard Worker	oldpwd=$$(pwd) && cd $(top_srcdir)/js && npm install && npm test
581*6777b538SAndroid Build Coastguard Worker	cd tmp/js && npm install benchmark
582*6777b538SAndroid Build Coastguard Worker	cp js/* tmp/js
583*6777b538SAndroid Build Coastguard Worker	touch js_preparation
584*6777b538SAndroid Build Coastguard Worker
585*6777b538SAndroid Build Coastguard Workerjs_middleman: js_preparation
586*6777b538SAndroid Build Coastguard Worker	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --js_out=import_style=commonjs,binary:$$oldpwd/tmp/js $(benchmarks_protoc_inputs) $(benchmarks_protoc_inputs_benchmark_wrapper) $(benchmarks_protoc_inputs_proto2))
587*6777b538SAndroid Build Coastguard Worker	touch js_middleman
588*6777b538SAndroid Build Coastguard Worker
589*6777b538SAndroid Build Coastguard Workerjs-benchmark: js_middleman
590*6777b538SAndroid Build Coastguard Worker	@echo '#! /bin/bash' > js-benchmark
591*6777b538SAndroid Build Coastguard Worker	@echo 'export TOP_JS_SRCDIR=$$(cd $(top_srcdir)/js && pwd)' >> js-benchmark
592*6777b538SAndroid Build Coastguard Worker	@echo 'cd tmp/js' >> js-benchmark
593*6777b538SAndroid Build Coastguard Worker	@echo 'env NODE_PATH="$$TOP_JS_SRCDIR:.:./node_modules:$$NODE_PATH" node --max-old-space-size=4096 js_benchmark.js $$@' >> js-benchmark
594*6777b538SAndroid Build Coastguard Worker	@chmod +x js-benchmark
595*6777b538SAndroid Build Coastguard Worker
596*6777b538SAndroid Build Coastguard Workerjs: js-benchmark
597*6777b538SAndroid Build Coastguard Worker	./js-benchmark $(all_data)
598*6777b538SAndroid Build Coastguard Worker
599*6777b538SAndroid Build Coastguard Worker############ JS RULE END #############
600*6777b538SAndroid Build Coastguard Worker
601*6777b538SAndroid Build Coastguard WorkerEXTRA_DIST =									\
602*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_inputs_benchmark_wrapper)				\
603*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_inputs)						\
604*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_inputs_proto2)					\
605*6777b538SAndroid Build Coastguard Worker	google_size.proto
606*6777b538SAndroid Build Coastguard Worker
607*6777b538SAndroid Build Coastguard WorkerMAINTAINERCLEANFILES =                                                     \
608*6777b538SAndroid Build Coastguard Worker	Makefile.in
609*6777b538SAndroid Build Coastguard Worker
610*6777b538SAndroid Build Coastguard WorkerCLEANFILES =                                                               \
611*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs)                                             \
612*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_header)                                      \
613*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2)                                      \
614*6777b538SAndroid Build Coastguard Worker	$(benchmarks_protoc_outputs_proto2_header)                               \
615*6777b538SAndroid Build Coastguard Worker	initialize_submodule                                                     \
616*6777b538SAndroid Build Coastguard Worker	make_tmp_dir                                                             \
617*6777b538SAndroid Build Coastguard Worker	protoc_middleman                                                         \
618*6777b538SAndroid Build Coastguard Worker	protoc_middleman2                                                        \
619*6777b538SAndroid Build Coastguard Worker	javac_middleman                                                          \
620*6777b538SAndroid Build Coastguard Worker	java-benchmark                                                           \
621*6777b538SAndroid Build Coastguard Worker	python_cpp_proto_library                                                 \
622*6777b538SAndroid Build Coastguard Worker	python-pure-python-benchmark                                             \
623*6777b538SAndroid Build Coastguard Worker	python-cpp-reflection-benchmark                                          \
624*6777b538SAndroid Build Coastguard Worker	python-cpp-generated-code-benchmark                                      \
625*6777b538SAndroid Build Coastguard Worker	go-benchmark                                                             \
626*6777b538SAndroid Build Coastguard Worker	go_protoc_middleman                                                      \
627*6777b538SAndroid Build Coastguard Worker	make_tmp_dir_gogo                                                        \
628*6777b538SAndroid Build Coastguard Worker	gogo_proto_middleman                                                     \
629*6777b538SAndroid Build Coastguard Worker	generate_gogo_data                                                       \
630*6777b538SAndroid Build Coastguard Worker	go_no_group_protoc_middleman                                             \
631*6777b538SAndroid Build Coastguard Worker	go_no_group                                                              \
632*6777b538SAndroid Build Coastguard Worker	go-no-group-benchmark                                                    \
633*6777b538SAndroid Build Coastguard Worker	$(cpp_no_group_benchmarks_protoc_outputs_header)                         \
634*6777b538SAndroid Build Coastguard Worker	$(cpp_no_group_benchmarks_protoc_outputs)                                \
635*6777b538SAndroid Build Coastguard Worker	$(cpp_no_group_benchmarks_protoc_outputs_proto2_header)                  \
636*6777b538SAndroid Build Coastguard Worker	$(cpp_no_group_benchmarks_protoc_outputs_proto2)                         \
637*6777b538SAndroid Build Coastguard Worker	generate_all_gogo_benchmark_code                                         \
638*6777b538SAndroid Build Coastguard Worker	generate-gogo-benchmark-code                                             \
639*6777b538SAndroid Build Coastguard Worker	cpp_no_group_protoc_middleman                                            \
640*6777b538SAndroid Build Coastguard Worker	generate_cpp_no_group_benchmark_code                                     \
641*6777b538SAndroid Build Coastguard Worker	generate_gogo_benchmark_code                                             \
642*6777b538SAndroid Build Coastguard Worker	gogofast_protoc_middleman                                                \
643*6777b538SAndroid Build Coastguard Worker	gogofast                                                                 \
644*6777b538SAndroid Build Coastguard Worker	gogofaster_protoc_middleman                                              \
645*6777b538SAndroid Build Coastguard Worker	gogofaster                                                               \
646*6777b538SAndroid Build Coastguard Worker	gogoslick_protoc_middleman                                               \
647*6777b538SAndroid Build Coastguard Worker	gogoslick                                                                \
648*6777b538SAndroid Build Coastguard Worker	gogo-benchmark                                                           \
649*6777b538SAndroid Build Coastguard Worker	gogo/cpp_no_group/cpp_benchmark.*                                        \
650*6777b538SAndroid Build Coastguard Worker	proto3_proto_middleman                                                   \
651*6777b538SAndroid Build Coastguard Worker	generate_proto3_data                                                     \
652*6777b538SAndroid Build Coastguard Worker	php-benchmark                                                            \
653*6777b538SAndroid Build Coastguard Worker	php-c-benchmark                                                          \
654*6777b538SAndroid Build Coastguard Worker	proto3_middleman_php                                                     \
655*6777b538SAndroid Build Coastguard Worker	pbjs_preparation                                                         \
656*6777b538SAndroid Build Coastguard Worker	pbjs_middleman                                                           \
657*6777b538SAndroid Build Coastguard Worker	pbjs-benchmark                                                           \
658*6777b538SAndroid Build Coastguard Worker	js_preparation                                                           \
659*6777b538SAndroid Build Coastguard Worker	js_middleman                                                             \
660*6777b538SAndroid Build Coastguard Worker	js-benchmark
661*6777b538SAndroid Build Coastguard Worker
662*6777b538SAndroid Build Coastguard Workerclean-local:
663*6777b538SAndroid Build Coastguard Worker	-rm -rf tmp/*
664*6777b538SAndroid Build Coastguard Worker
665