Makefile.am 36.8 KB
Newer Older
BSBandme's avatar
BSBandme committed
1 2 3
benchmarks_protoc_inputs_benchmark_wrapper =                               \
	benchmarks.proto

4
benchmarks_protoc_inputs =                                                 \
BSBandme's avatar
BSBandme committed
5
	datasets/google_message1/proto3/benchmark_message1_proto3.proto
6 7

benchmarks_protoc_inputs_proto2 =                                          \
BSBandme's avatar
BSBandme committed
8
	datasets/google_message1/proto2/benchmark_message1_proto2.proto          \
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
	datasets/google_message2/benchmark_message2.proto                        \
	datasets/google_message3/benchmark_message3.proto                        \
	datasets/google_message3/benchmark_message3_1.proto                      \
	datasets/google_message3/benchmark_message3_2.proto                      \
	datasets/google_message3/benchmark_message3_3.proto                      \
	datasets/google_message3/benchmark_message3_4.proto                      \
	datasets/google_message3/benchmark_message3_5.proto                      \
	datasets/google_message3/benchmark_message3_6.proto                      \
	datasets/google_message3/benchmark_message3_7.proto                      \
	datasets/google_message3/benchmark_message3_8.proto                      \
	datasets/google_message4/benchmark_message4.proto                        \
	datasets/google_message4/benchmark_message4_1.proto                      \
	datasets/google_message4/benchmark_message4_2.proto                      \
	datasets/google_message4/benchmark_message4_3.proto

Yilun Chong's avatar
Yilun Chong committed
24
make_tmp_dir:
25
	mkdir -p 'tmp/java/src/main/java'
Yilun Chong's avatar
Yilun Chong committed
26
	touch make_tmp_dir
27

28 29 30
# We have to cd to $(srcdir) before executing protoc because $(protoc_inputs) is
# relative to srcdir, which may not be the same as the current directory when
# building out-of-tree.
BSBandme's avatar
BSBandme committed
31
protoc_middleman: make_tmp_dir $(top_srcdir)/src/protoc$(EXEEXT) $(benchmarks_protoc_inputs) $(well_known_type_protoc_inputs) $(benchmarks_protoc_inputs_benchmark_wrapper)
Yilun Chong's avatar
Yilun Chong committed
32
	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) )
33 34
	touch protoc_middleman

Yilun Chong's avatar
Yilun Chong committed
35
protoc_middleman2:  make_tmp_dir $(top_srcdir)/src/protoc$(EXEEXT) $(benchmarks_protoc_inputs_proto2) $(well_known_type_protoc_inputs)
Yilun Chong's avatar
Yilun Chong committed
36
	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) )
37
	touch protoc_middleman2
38

Yilun Chong's avatar
Yilun Chong committed
39
all_data = $$(find $(srcdir) -type f -name "dataset.*.pb" -not -path "./tmp/*")
40 41 42 43

############# CPP RULES ##############

benchmarks_protoc_outputs =                                                \
Yilun Chong's avatar
Yilun Chong committed
44 45 46
	cpp/benchmarks.pb.cc                                                     \
	cpp/datasets/google_message1/proto3/benchmark_message1_proto3.pb.cc

47
benchmarks_protoc_outputs_header =                                         \
Yilun Chong's avatar
Yilun Chong committed
48 49
	cpp/benchmarks.pb.h                                                      \
	cpp/datasets/google_message1/proto3/benchmark_message1_proto3.pb.h
50 51

benchmarks_protoc_outputs_proto2_header =                                  \
Yilun Chong's avatar
Yilun Chong committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
	cpp/datasets/google_message1/proto2/benchmark_message1_proto2.pb.h       \
	cpp/datasets/google_message2/benchmark_message2.pb.h                     \
	cpp/datasets/google_message3/benchmark_message3.pb.h                     \
	cpp/datasets/google_message3/benchmark_message3_1.pb.h                   \
	cpp/datasets/google_message3/benchmark_message3_2.pb.h                   \
	cpp/datasets/google_message3/benchmark_message3_3.pb.h                   \
	cpp/datasets/google_message3/benchmark_message3_4.pb.h                   \
	cpp/datasets/google_message3/benchmark_message3_5.pb.h                   \
	cpp/datasets/google_message3/benchmark_message3_6.pb.h                   \
	cpp/datasets/google_message3/benchmark_message3_7.pb.h                   \
	cpp/datasets/google_message3/benchmark_message3_8.pb.h                   \
	cpp/datasets/google_message4/benchmark_message4.pb.h                     \
	cpp/datasets/google_message4/benchmark_message4_1.pb.h                   \
	cpp/datasets/google_message4/benchmark_message4_2.pb.h                   \
	cpp/datasets/google_message4/benchmark_message4_3.pb.h
67 68

benchmarks_protoc_outputs_proto2 =                                         \
Yilun Chong's avatar
Yilun Chong committed
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
	cpp/datasets/google_message1/proto2/benchmark_message1_proto2.pb.cc      \
	cpp/datasets/google_message2/benchmark_message2.pb.cc                    \
	cpp/datasets/google_message3/benchmark_message3.pb.cc                    \
	cpp/datasets/google_message3/benchmark_message3_1.pb.cc                  \
	cpp/datasets/google_message3/benchmark_message3_2.pb.cc                  \
	cpp/datasets/google_message3/benchmark_message3_3.pb.cc                  \
	cpp/datasets/google_message3/benchmark_message3_4.pb.cc                  \
	cpp/datasets/google_message3/benchmark_message3_5.pb.cc                  \
	cpp/datasets/google_message3/benchmark_message3_6.pb.cc                  \
	cpp/datasets/google_message3/benchmark_message3_7.pb.cc                  \
	cpp/datasets/google_message3/benchmark_message3_8.pb.cc                  \
	cpp/datasets/google_message4/benchmark_message4.pb.cc                    \
	cpp/datasets/google_message4/benchmark_message4_1.pb.cc                  \
	cpp/datasets/google_message4/benchmark_message4_2.pb.cc                  \
	cpp/datasets/google_message4/benchmark_message4_3.pb.cc
84 85 86 87 88 89 90


$(benchmarks_protoc_outputs): protoc_middleman
$(benchmarks_protoc_outputs_header): protoc_middleman
$(benchmarks_protoc_outputs_proto2): protoc_middleman2
$(benchmarks_protoc_outputs_proto2_header): protoc_middleman2

Yilun Chong's avatar
Yilun Chong committed
91 92 93 94
initialize_submodule:
	oldpwd=`pwd`
	cd $(top_srcdir)/third_party
	git submodule update --init -r
95
	cd $(top_srcdir)/third_party/benchmark && cmake -DCMAKE_BUILD_TYPE=Release && make
Yilun Chong's avatar
Yilun Chong committed
96 97
	cd $$oldpwd
	touch initialize_submodule
Yilun Chong's avatar
Yilun Chong committed
98

Yilun Chong's avatar
Yilun Chong committed
99 100
$(top_srcdir)/third_party/benchmark/src/libbenchmark.a: initialize_submodule

101 102 103 104 105
AM_CXXFLAGS = $(NO_OPT_CXXFLAGS) $(PROTOBUF_OPT_FLAG) -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare

bin_PROGRAMS = cpp-benchmark

cpp_benchmark_LDADD = $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/third_party/benchmark/src/libbenchmark.a
Yilun Chong's avatar
Yilun Chong committed
106 107
cpp_benchmark_SOURCES = cpp/cpp_benchmark.cc
cpp_benchmark_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(top_srcdir)/third_party/benchmark/include
108 109 110
# Explicit deps because BUILT_SOURCES are only done before a "make all/check"
# so a direct "make test_cpp" could fail if parallel enough.
# See: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Recording-Dependencies-manually
Yilun Chong's avatar
Yilun Chong committed
111
cpp/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
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
113 114 115 116 117 118
nodist_cpp_benchmark_SOURCES =                                             \
	$(benchmarks_protoc_outputs)                                             \
	$(benchmarks_protoc_outputs_proto2)                                      \
	$(benchmarks_protoc_outputs_proto2_header)                               \
	$(benchmarks_protoc_outputs_header)

Yilun Chong's avatar
Yilun Chong committed
119
cpp: protoc_middleman protoc_middleman2 cpp-benchmark initialize_submodule
120 121 122 123 124 125
	./cpp-benchmark $(all_data)

############ CPP RULES END ############

############# JAVA RULES ##############

Yilun Chong's avatar
Yilun Chong committed
126
java_benchmark_testing_files =                                      \
127
	java/src/main/java/com/google/protobuf/ProtoCaliperBenchmark.java
128 129

javac_middleman: $(java_benchmark_testing_files) protoc_middleman protoc_middleman2
130 131 132 133
	cp -r $(srcdir)/java tmp 
	mkdir -p tmp/java/lib
	cp $(top_srcdir)/java/core/target/*.jar tmp/java/lib/protobuf-java.jar
	cd tmp/java && mvn clean compile assembly:single -Dprotobuf.version=$(PACKAGE_VERSION) && cd ../..
134 135
	@touch javac_middleman

136
java-benchmark: javac_middleman
137
	@echo "Writing shortcut script java-benchmark..."
Yilun Chong's avatar
Yilun Chong committed
138
	@echo '#! /bin/bash' > java-benchmark
139 140 141 142
	@echo 'all_data=""' >> java-benchmark
	@echo 'conf=()' >> java-benchmark
	@echo 'data_files=""' >> java-benchmark
	@echo 'for arg in $$@; do if [[ $${arg:0:1} == "-" ]]; then conf+=($$arg); else data_files+="$$arg,"; fi; done' >> java-benchmark
143 144 145 146
	@echo 'java -cp '\"tmp/java/target/*:$(top_srcdir)/java/core/target/*:$(top_srcdir)/java/util/target/*\"" \\" >>java-benchmark
	@echo '   com.google.caliper.runner.CaliperMain com.google.protobuf.ProtoCaliperBenchmark -i runtime '"\\"  >> java-benchmark
	@echo '   -b serializeToByteArray,serializeToMemoryStream,deserializeFromByteArray,deserializeFromMemoryStream '"\\" >> java-benchmark
	@echo '   -DdataFile=$${data_files:0:-1} $${conf[*]}' >> java-benchmark
147 148 149 150 151 152 153
	@chmod +x java-benchmark

java: protoc_middleman protoc_middleman2 java-benchmark
	./java-benchmark $(all_data)

############# JAVA RULES END ##############

Yilun Chong's avatar
Yilun Chong committed
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170

############# PYTHON RULES ##############

python_add_init: protoc_middleman protoc_middleman2
	all_file=`find tmp -type f -regex '.*\.py'` &&                   \
	for file in $${all_file[@]}; do                                  \
		path="$${file%/*}";                                            \
		while true; do                                                 \
			touch "$$path/__init__.py" && chmod +x "$$path/__init__.py"; \
			if [[ $$path != *"/"* ]]; then break; fi;                    \
			path=$${path%/*};                                            \
		done                                                           \
	done

python_cpp_pkg_flags = `pkg-config --cflags --libs python`

lib_LTLIBRARIES = libbenchmark_messages.la
Yilun Chong's avatar
Yilun Chong committed
171
libbenchmark_messages_la_SOURCES = python/python_benchmark_messages.cc
172
libbenchmark_messages_la_LIBADD = $(top_srcdir)/src/.libs/libprotobuf.la
Yilun Chong's avatar
Yilun Chong committed
173
libbenchmark_messages_la_LDFLAGS = -version-info 1:0:0 -export-dynamic
Yilun Chong's avatar
Yilun Chong committed
174 175
libbenchmark_messages_la_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp $(python_cpp_pkg_flags)
libbenchmark_messages_la-python_benchmark_messages.$(OBJEXT): $(benchmarks_protoc_outputs_header) $(benchmarks_protoc_outputs_proto2_header) $(benchmarks_protoc_outputs) $(benchmarks_protoc_outputs_proto2)
Yilun Chong's avatar
Yilun Chong committed
176 177 178 179 180 181 182 183
nodist_libbenchmark_messages_la_SOURCES =                         \
	$(benchmarks_protoc_outputs)                                    \
	$(benchmarks_protoc_outputs_proto2)                             \
	$(benchmarks_protoc_outputs_proto2_header)                      \
	$(benchmarks_protoc_outputs_header)

python-pure-python-benchmark: python_add_init
	@echo "Writing shortcut script python-pure-python-benchmark..."
Yilun Chong's avatar
Yilun Chong committed
184
	@echo '#! /bin/bash' > python-pure-python-benchmark
185 186
	@echo export LD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-pure-python-benchmark
	@echo export DYLD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-pure-python-benchmark
Yilun Chong's avatar
Yilun Chong committed
187
	@echo export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=\'python\' >> python-pure-python-benchmark
Yilun Chong's avatar
Yilun Chong committed
188
	@echo cp $(srcdir)/python/py_benchmark.py tmp >> python-pure-python-benchmark
189
	@echo python tmp/py_benchmark.py '$$@' >> python-pure-python-benchmark
Yilun Chong's avatar
Yilun Chong committed
190 191 192 193
	@chmod +x python-pure-python-benchmark

python-cpp-reflection-benchmark: python_add_init
	@echo "Writing shortcut script python-cpp-reflection-benchmark..."
Yilun Chong's avatar
Yilun Chong committed
194
	@echo '#! /bin/bash' > python-cpp-reflection-benchmark
195 196
	@echo export LD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-cpp-reflection-benchmark
	@echo export DYLD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-cpp-reflection-benchmark
Yilun Chong's avatar
Yilun Chong committed
197
	@echo export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=\'cpp\' >> python-cpp-reflection-benchmark
Yilun Chong's avatar
Yilun Chong committed
198
	@echo cp $(srcdir)/python/py_benchmark.py tmp >> python-cpp-reflection-benchmark
199
	@echo python tmp/py_benchmark.py '$$@' >> python-cpp-reflection-benchmark
Yilun Chong's avatar
Yilun Chong committed
200 201 202 203
	@chmod +x python-cpp-reflection-benchmark

python-cpp-generated-code-benchmark: python_add_init libbenchmark_messages.la
	@echo "Writing shortcut script python-cpp-generated-code-benchmark..."
Yilun Chong's avatar
Yilun Chong committed
204
	@echo '#! /bin/bash' > python-cpp-generated-code-benchmark
205 206
	@echo export LD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-cpp-generated-code-benchmark
	@echo export DYLD_LIBRARY_PATH=$(top_srcdir)/src/.libs >> python-cpp-generated-code-benchmark
Yilun Chong's avatar
Yilun Chong committed
207
	@echo export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=\'cpp\' >> python-cpp-generated-code-benchmark
Yilun Chong's avatar
Yilun Chong committed
208
	@echo cp $(srcdir)/python/py_benchmark.py tmp >> python-cpp-generated-code-benchmark
209
	@echo python tmp/py_benchmark.py --cpp_generated '$$@' >> python-cpp-generated-code-benchmark
Yilun Chong's avatar
Yilun Chong committed
210 211 212 213 214 215 216 217 218 219 220 221 222
	@chmod +x python-cpp-generated-code-benchmark

python-pure-python: python-pure-python-benchmark
	./python-pure-python-benchmark $(all_data)

python-cpp-reflection: python-cpp-reflection-benchmark
	./python-cpp-reflection-benchmark $(all_data)

python-cpp-generated-code: python-cpp-generated-code-benchmark
	./python-cpp-generated-code-benchmark $(all_data)

############# PYTHON RULES END ##############

BSBandme's avatar
BSBandme committed
223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247
############# GO RULES BEGIN ##############

benchmarks_protoc_inputs_proto2_message1 =                                 \
	datasets/google_message1/proto2/benchmark_message1_proto2.proto

benchmarks_protoc_inputs_proto2_message2 =                                 \
	datasets/google_message2/benchmark_message2.proto

benchmarks_protoc_inputs_proto2_message3 =                                 \
	datasets/google_message3/benchmark_message3.proto                        \
	datasets/google_message3/benchmark_message3_1.proto                      \
	datasets/google_message3/benchmark_message3_2.proto                      \
	datasets/google_message3/benchmark_message3_3.proto                      \
	datasets/google_message3/benchmark_message3_4.proto                      \
	datasets/google_message3/benchmark_message3_5.proto                      \
	datasets/google_message3/benchmark_message3_6.proto                      \
	datasets/google_message3/benchmark_message3_7.proto                      \
	datasets/google_message3/benchmark_message3_8.proto

benchmarks_protoc_inputs_proto2_message4 =                                 \
	datasets/google_message4/benchmark_message4.proto                        \
	datasets/google_message4/benchmark_message4_1.proto                      \
	datasets/google_message4/benchmark_message4_2.proto                      \
	datasets/google_message4/benchmark_message4_3.proto

Yilun Chong's avatar
Yilun Chong committed
248
go_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)
BSBandme's avatar
BSBandme committed
249 250 251 252 253 254
	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs) )
	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_benchmark_wrapper) )
	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_proto2_message1) )
	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_proto2_message2) )
	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_proto2_message3) )
	oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --go_out=$$oldpwd/tmp $(benchmarks_protoc_inputs_proto2_message4) )
Yilun Chong's avatar
Yilun Chong committed
255
	touch go_protoc_middleman
BSBandme's avatar
BSBandme committed
256

Yilun Chong's avatar
Yilun Chong committed
257
go-benchmark: go_protoc_middleman 
BSBandme's avatar
BSBandme committed
258
	@echo "Writing shortcut script go-benchmark..."
Yilun Chong's avatar
Yilun Chong committed
259
	@echo '#! /bin/bash' > go-benchmark
Yilun Chong's avatar
Yilun Chong committed
260 261
	@echo 'cd $(srcdir)/go' >> go-benchmark
	@echo 'all_data=""' >> go-benchmark
262 263 264 265
	@echo 'conf=()' >> go-benchmark
	@echo 'data_files=()' >> go-benchmark
	@echo 'for arg in $$@; do if [[ $${arg:0:1} == "-" ]]; then conf+=($$arg); else data_files+=("../$$arg"); fi; done' >> go-benchmark
	@echo 'go test -bench=. $${conf[*]} -- $${data_files[*]}' >> go-benchmark
Yilun Chong's avatar
Yilun Chong committed
266
	@echo 'cd ..' >> go-benchmark
BSBandme's avatar
BSBandme committed
267 268
	@chmod +x go-benchmark

Yilun Chong's avatar
Yilun Chong committed
269
go: go_protoc_middleman go-benchmark 
BSBandme's avatar
BSBandme committed
270 271 272 273
	./go-benchmark $(all_data)

############# GO RULES END ##############

Yilun Chong's avatar
Yilun Chong committed
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352
############# GOGO RULES BEGIN ############

cpp_no_group_benchmarks_protoc_outputs_header =                             \
	gogo/cpp_no_group/benchmarks.pb.h                                         \
	gogo/cpp_no_group/datasets/google_message1/proto3/benchmark_message1_proto3.pb.h

cpp_no_group_benchmarks_protoc_outputs =                                    \
	gogo/cpp_no_group/benchmarks.pb.cc                                        \
	gogo/cpp_no_group/datasets/google_message1/proto3/benchmark_message1_proto3.pb.cc

cpp_no_group_benchmarks_protoc_outputs_proto2_header =                      \
	gogo/cpp_no_group/datasets/google_message1/proto2/benchmark_message1_proto2.pb.h \
	gogo/cpp_no_group/datasets/google_message2/benchmark_message2.pb.h        \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3.pb.h        \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_1.pb.h      \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_2.pb.h      \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_3.pb.h      \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_4.pb.h      \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_5.pb.h      \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_6.pb.h      \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_7.pb.h      \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_8.pb.h      \
	gogo/cpp_no_group/datasets/google_message4/benchmark_message4.pb.h        \
	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_1.pb.h      \
	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_2.pb.h      \
	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_3.pb.h

cpp_no_group_benchmarks_protoc_outputs_proto2 =                             \
	gogo/cpp_no_group/datasets/google_message1/proto2/benchmark_message1_proto2.pb.cc \
	gogo/cpp_no_group/datasets/google_message2/benchmark_message2.pb.cc       \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3.pb.cc       \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_1.pb.cc     \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_2.pb.cc     \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_3.pb.cc     \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_4.pb.cc     \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_5.pb.cc     \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_6.pb.cc     \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_7.pb.cc     \
	gogo/cpp_no_group/datasets/google_message3/benchmark_message3_8.pb.cc     \
	gogo/cpp_no_group/datasets/google_message4/benchmark_message4.pb.cc       \
	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_1.pb.cc     \
	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_2.pb.cc     \
	gogo/cpp_no_group/datasets/google_message4/benchmark_message4_3.pb.cc

$(cpp_no_group_benchmarks_protoc_outputs): cpp_no_group_protoc_middleman
$(cpp_no_group_benchmarks_protoc_outputs_header): cpp_no_group_protoc_middleman
$(cpp_no_group_benchmarks_protoc_outputs_proto2): cpp_no_group_protoc_middleman
$(cpp_no_group_benchmarks_protoc_outputs_proto2_header): cpp_no_group_protoc_middleman

generate_cpp_no_group_benchmark_code:
	cp $(srcdir)/cpp/cpp_benchmark.cc gogo/cpp_no_group/cpp_benchmark.cc
	sed -i -e "s/\#include \"datasets/\#include \"gogo\/cpp_no_group\/datasets/g" gogo/cpp_no_group/cpp_benchmark.cc
	sed -i -e "s/\#include \"benchmarks.pb.h/\#include \"gogo\/cpp_no_group\/benchmarks.pb.h/g" gogo/cpp_no_group/cpp_benchmark.cc  
	touch generate_cpp_no_group_benchmark_code
	
bin_PROGRAMS += cpp-no-group-benchmark
cpp_no_group_benchmark_LDADD = $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/third_party/benchmark/src/libbenchmark.a
cpp_no_group_benchmark_SOURCES = gogo/cpp_no_group/cpp_benchmark.cc
cpp_no_group_benchmark_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/gogo/cpp_no_group -I$(top_srcdir)/third_party/benchmark/include
# Explicit deps because BUILT_SOURCES are only done before a "make all/check"
# so a direct "make test_cpp" could fail if parallel enough.
# See: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html#Recording-Dependencies-manually
gogo/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) \
	$(cpp_no_group_benchmarks_protoc_outputs_proto2_header) $(top_srcdir)/third_party/benchmark/src/libbenchmark.a generate_cpp_no_group_benchmark_code
gogo/cpp_no_group/cpp_benchmark.cc: generate_cpp_no_group_benchmark_code
nodist_cpp_no_group_benchmark_SOURCES =                                    \
	$(cpp_no_group_benchmarks_protoc_outputs_proto2)                         \
	$(cpp_no_group_benchmarks_protoc_outputs)                                \
	$(cpp_no_group_benchmarks_protoc_outputs_header)                         \
	$(cpp_no_group_benchmarks_protoc_outputs_proto2_header)

cpp_no_group: cpp_no_group_protoc_middleman generate_gogo_data cpp-no-group-benchmark
	./cpp-no-group-benchmark $(gogo_data)
 
gogo_proto_middleman: protoc-gen-gogoproto
	mkdir -p "tmp/gogo_proto"
	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) )
	touch gogo_proto_middleman

353
gogo_data = $$(for data in $(all_data); do echo "tmp/gogo_data$${data\#$(srcdir)}"; done | xargs)
Yilun Chong's avatar
Yilun Chong committed
354 355

generate_gogo_data: protoc_middleman protoc_middleman2 gogo-data-scrubber
356 357
	mkdir -p `dirname $(gogo_data)`
	./gogo-data-scrubber $(all_data) $(gogo_data)
Yilun Chong's avatar
Yilun Chong committed
358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412
	touch generate_gogo_data
	
make_tmp_dir_gogo:
	mkdir -p tmp/go_no_group/benchmark_code
	mkdir -p tmp/gogofast/benchmark_code
	mkdir -p tmp/gogofaster/benchmark_code
	mkdir -p tmp/gogoslick/benchmark_code
	touch make_tmp_dir_gogo

go_no_group_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
	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) )
	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) )
	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) )
	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) )
	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) )
	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) )
	touch go_no_group_protoc_middleman

cpp_no_group_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
	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) )
	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) )
	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) )
	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) )
	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) )
	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) )
	touch cpp_no_group_protoc_middleman

gogofast_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
	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) )
	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) )
	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) )
	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) )
	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) )
	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) )
	touch gogofast_protoc_middleman

gogofaster_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
	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) )
	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) )
	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) )
	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) )
	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) )
	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) )
	touch gogofaster_protoc_middleman

gogoslick_protoc_middleman: make_tmp_dir_gogo $(top_srcdir)/src/protoc$(EXEEXT) gogo_proto_middleman $(well_known_type_protoc_inputs)
	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) )
	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) )
	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) )
	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) )
	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) )
	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) )
	touch gogoslick_protoc_middleman

generate-gogo-benchmark-code:
Yilun Chong's avatar
Yilun Chong committed
413
	@echo '#! /bin/bash' > generate-gogo-benchmark-code
Yilun Chong's avatar
Yilun Chong committed
414 415 416 417 418 419 420 421 422 423 424 425 426 427
	@echo 'cp $(srcdir)/go/go_benchmark_test.go tmp/$$1/benchmark_code/$$1_benchmark1_test.go' >> generate-gogo-benchmark-code
	@echo 'sed -i -e "s/\.\.\/tmp/../g" tmp/$$1/benchmark_code/$$1_benchmark1_test.go' >> generate-gogo-benchmark-code
	@echo 'sed -i -e "s/b\.Run(\"\(.*\)\"/b.Run(\"\1\_$$1\"/g" tmp/$$1/benchmark_code/$$1_benchmark1_test.go' >> generate-gogo-benchmark-code
	@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
	@chmod +x generate-gogo-benchmark-code

generate_all_gogo_benchmark_code: generate-gogo-benchmark-code make_tmp_dir_gogo
	./generate-gogo-benchmark-code go_no_group 0
	./generate-gogo-benchmark-code gogofast 1
	./generate-gogo-benchmark-code gogofaster 1
	./generate-gogo-benchmark-code gogoslick 1

gogo-benchmark:
	@echo "Writing shortcut script gogo-benchmark..."
Yilun Chong's avatar
Yilun Chong committed
428
	@echo '#! /bin/bash' > gogo-benchmark
Yilun Chong's avatar
Yilun Chong committed
429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454
	@echo 'cd tmp/$$1/benchmark_code' >> gogo-benchmark
	@echo 'shift' >> gogo-benchmark
	@echo 'all_data=""' >> gogo-benchmark
	@echo 'for data_file in $$@; do all_data="$$all_data ../../../$$data_file"; done' >> gogo-benchmark
	@echo 'go test -bench=. -- $$all_data' >> gogo-benchmark
	@echo 'cd ../..' >> gogo-benchmark
	@chmod +x gogo-benchmark

go_no_group: go_no_group_protoc_middleman generate_gogo_data generate_all_gogo_benchmark_code gogo-benchmark
	./gogo-benchmark go_no_group $(gogo_data)
	
gogofast: gogofast_protoc_middleman generate_gogo_data gogo-benchmark generate_all_gogo_benchmark_code 
	./gogo-benchmark gogofast $(gogo_data)
	
gogofaster: gogofaster_protoc_middleman  generate_gogo_data gogo-benchmark generate_all_gogo_benchmark_code
	./gogo-benchmark gogofaster $(gogo_data)

gogoslick: gogoslick_protoc_middleman  generate_gogo_data gogo-benchmark generate_all_gogo_benchmark_code
	./gogo-benchmark gogoslick $(gogo_data)


############# GOGO RULES END ############

 
############ UTIL RULES BEGIN ############

455
bin_PROGRAMS += protoc-gen-gogoproto gogo-data-scrubber protoc-gen-proto2_to_proto3 proto3-data-stripper
Yilun Chong's avatar
Yilun Chong committed
456 457 458 459 460 461 462 463 464 465 466 467 468 469

protoc_gen_gogoproto_LDADD = $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/src/libprotoc.la
protoc_gen_gogoproto_SOURCES = util/protoc-gen-gogoproto.cc
protoc_gen_gogoproto_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(srcdir)/util

gogo_data_scrubber_LDADD = $(top_srcdir)/src/libprotobuf.la
gogo_data_scrubber_SOURCES = util/gogo_data_scrubber.cc
gogo_data_scrubber_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(srcdir)/util
util/gogo_data_scrubber-gogo_data_scrubber.$(OBJEXT): $(benchmarks_protoc_outputs) $(benchmarks_protoc_outputs_proto2) $(benchmarks_protoc_outputs_header) $(benchmarks_protoc_outputs_proto2_header)
nodist_gogo_data_scrubber_SOURCES =                                        \
	$(benchmarks_protoc_outputs)                                             \
	$(benchmarks_protoc_outputs_proto2)                                      \
	$(benchmarks_protoc_outputs_proto2_header)                               \
	$(benchmarks_protoc_outputs_header)
470 471 472 473 474 475 476 477 478 479 480 481 482 483 484

protoc_gen_proto2_to_proto3_LDADD = $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/src/libprotoc.la
protoc_gen_proto2_to_proto3_SOURCES = util/protoc-gen-proto2_to_proto3.cc
protoc_gen_proto2_to_proto3_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(srcdir)/util

proto3_data_stripper_LDADD = $(top_srcdir)/src/libprotobuf.la
proto3_data_stripper_SOURCES = util/proto3_data_stripper.cc
proto3_data_stripper_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)/cpp -I$(srcdir)/util
util/proto3_data_stripper-proto3_data_stripper.$(OBJEXT): $(benchmarks_protoc_outputs) $(benchmarks_protoc_outputs_proto2) $(benchmarks_protoc_outputs_header) $(benchmarks_protoc_outputs_proto2_header)
nodist_proto3_data_stripper_SOURCES =                                      \
	$(benchmarks_protoc_outputs)                                             \
	$(benchmarks_protoc_outputs_proto2)                                      \
	$(benchmarks_protoc_outputs_proto2_header)                               \
	$(benchmarks_protoc_outputs_header)

Yilun Chong's avatar
Yilun Chong committed
485 486
	
############ UTIL RULES END ############
BSBandme's avatar
BSBandme committed
487

488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503
############ PROTO3 PREPARATION BEGIN #############

proto3_proto_middleman: protoc-gen-proto2_to_proto3
	mkdir -p "tmp/proto3_proto"
	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) )
	touch proto3_proto_middleman

proto3_data = $$(for data in $(all_data); do echo "tmp/proto3_data$${data\#$(srcdir)}"; done | xargs)

generate_proto3_data: protoc_middleman protoc_middleman2 proto3-data-stripper
	mkdir -p `dirname $(proto3_data)`
	./proto3-data-stripper $(all_data) $(proto3_data)
	touch generate_proto3_data

############ PROTO3 PREPARATION END #############

Yilun Chong's avatar
Yilun Chong committed
504 505 506
MAINTAINERCLEANFILES =                                                     \
	Makefile.in

507 508 509 510 511
CLEANFILES =                                                               \
	$(benchmarks_protoc_outputs)                                             \
	$(benchmarks_protoc_outputs_header)                                      \
	$(benchmarks_protoc_outputs_proto2)                                      \
	$(benchmarks_protoc_outputs_proto2_header)                               \
Yilun Chong's avatar
Yilun Chong committed
512
	initialize_submodule                                                     \
Yilun Chong's avatar
Yilun Chong committed
513
	make_tmp_dir                                                             \
514 515 516
	protoc_middleman                                                         \
	protoc_middleman2                                                        \
	javac_middleman                                                          \
Yilun Chong's avatar
Yilun Chong committed
517 518 519 520
	java-benchmark                                                           \
	python_cpp_proto_library                                                 \
	python-pure-python-benchmark                                             \
	python-cpp-reflection-benchmark                                          \
BSBandme's avatar
BSBandme committed
521 522 523
	python-cpp-generated-code-benchmark                                      \
	go-benchmark                                                             \
	go_protoc_middleman                                                      \
Yilun Chong's avatar
Yilun Chong committed
524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545
	make_tmp_dir_gogo                                                        \
	gogo_proto_middleman                                                     \
	generate_gogo_data                                                       \
	go_no_group_protoc_middleman                                             \
	go_no_group                                                              \
	go-no-group-benchmark                                                    \
	$(cpp_no_group_benchmarks_protoc_outputs_header)                         \
	$(cpp_no_group_benchmarks_protoc_outputs)                                \
	$(cpp_no_group_benchmarks_protoc_outputs_proto2_header)                  \
	$(cpp_no_group_benchmarks_protoc_outputs_proto2)                         \
	generate_all_gogo_benchmark_code                                         \
	generate-gogo-benchmark-code                                             \
	cpp_no_group_protoc_middleman                                            \
	generate_cpp_no_group_benchmark_code                                     \
	generate_gogo_benchmark_code                                             \
	gogofast_protoc_middleman                                                \
	gogofast                                                                 \
	gogofaster_protoc_middleman                                              \
	gogofaster                                                               \
	gogoslick_protoc_middleman                                               \
	gogoslick                                                                \
	gogo-benchmark                                                           \
546 547 548
	gogo/cpp_no_group/cpp_benchmark.*                                        \
	proto3_proto_middleman                                                   \
	generate_proto3_data
Yilun Chong's avatar
Yilun Chong committed
549
	
550 551 552

clean-local:
	-rm -rf tmp/*