79 lines
3.5 KiB
Makefile
79 lines
3.5 KiB
Makefile
|
|
benchmarks_protoc_inputs = \
|
|
benchmarks.proto \
|
|
benchmark_messages_proto3.proto
|
|
|
|
benchmarks_protoc_inputs_proto2 = \
|
|
benchmark_messages_proto2.proto
|
|
|
|
benchmarks_protoc_outputs = \
|
|
benchmarks.pb.cc \
|
|
benchmarks.pb.h \
|
|
benchmark_messages_proto3.pb.cc \
|
|
benchmark_messages_proto3.pb.h
|
|
|
|
benchmarks_protoc_outputs_proto2 = \
|
|
benchmark_messages_proto2.pb.cc \
|
|
benchmark_messages_proto2.pb.h
|
|
|
|
AM_CXXFLAGS = $(NO_OPT_CXXFLAGS) $(PROTOBUF_OPT_FLAG) -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare
|
|
|
|
bin_PROGRAMS = generate-datasets cpp-benchmark
|
|
|
|
generate_datasets_LDADD = $(top_srcdir)/src/libprotobuf.la
|
|
generate_datasets_SOURCES = generate_datasets.cc
|
|
generate_datasets_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir)
|
|
nodist_generate_datasets_SOURCES = \
|
|
$(benchmarks_protoc_outputs) \
|
|
$(benchmarks_protoc_outputs_proto2)
|
|
|
|
# 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
|
|
generate_datasets-generate_datasets.$(OBJEXT): benchmarks.pb.h
|
|
|
|
cpp_benchmark_LDADD = $(top_srcdir)/src/libprotobuf.la $(top_srcdir)/third_party/benchmark/src/libbenchmark.a
|
|
cpp_benchmark_SOURCES = cpp_benchmark.cc
|
|
cpp_benchmark_CPPFLAGS = -I$(top_srcdir)/src -I$(srcdir) -I$(top_srcdir)/third_party/benchmark/include
|
|
nodist_cpp_benchmark_SOURCES = \
|
|
$(benchmarks_protoc_outputs) \
|
|
$(benchmarks_protoc_outputs_proto2)
|
|
|
|
$(benchmarks_protoc_outputs): protoc_middleman
|
|
$(benchmarks_protoc_outputs_proto2): protoc_middleman2
|
|
|
|
CLEANFILES = \
|
|
$(benchmarks_protoc_outputs) \
|
|
$(benchmarks_protoc_outputs_proto2) \
|
|
protoc_middleman \
|
|
protoc_middleman2 \
|
|
dataset.*
|
|
|
|
MAINTAINERCLEANFILES = \
|
|
Makefile.in
|
|
|
|
if USE_EXTERNAL_PROTOC
|
|
|
|
protoc_middleman: $(benchmarks_protoc_inputs)
|
|
$(PROTOC) -I$(srcdir) -I$(top_srcdir) --cpp_out=. $(benchmarks_protoc_inputs)
|
|
touch protoc_middleman
|
|
|
|
protoc_middleman2: $(benchmarks_protoc_inputs_proto2)
|
|
$(PROTOC) -I$(srcdir) -I$(top_srcdir) --cpp_out=. $(benchmarks_protoc_inputs_proto2)
|
|
touch protoc_middleman2
|
|
|
|
else
|
|
|
|
# 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.
|
|
protoc_middleman: $(top_srcdir)/src/protoc$(EXEEXT) $(benchmarks_protoc_inputs) $(well_known_type_protoc_inputs)
|
|
oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd $(benchmarks_protoc_inputs) )
|
|
touch protoc_middleman
|
|
|
|
protoc_middleman2: $(top_srcdir)/src/protoc$(EXEEXT) $(benchmarks_protoc_inputs_proto2) $(well_known_type_protoc_inputs)
|
|
oldpwd=`pwd` && ( cd $(srcdir) && $$oldpwd/../src/protoc$(EXEEXT) -I. -I$(top_srcdir)/src --cpp_out=$$oldpwd $(benchmarks_protoc_inputs_proto2) )
|
|
touch protoc_middleman
|
|
|
|
endif
|