|  | @@ -149,8 +149,6 @@ else
 | 
	
		
			
				|  |  |  LIBS = rt m z pthread
 | 
	
		
			
				|  |  |  LDFLAGS += -pthread
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  | -LIBSXX = protobuf
 | 
	
		
			
				|  |  | -LIBS_PROTOC = protoc protobuf
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ifneq ($(wildcard /usr/src/gtest/src/gtest-all.cc),)
 | 
	
		
			
				|  |  |  GTEST_LIB = /usr/src/gtest/src/gtest-all.cc -I/usr/src/gtest
 | 
	
	
		
			
				|  | @@ -174,7 +172,6 @@ CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
 | 
	
		
			
				|  |  |  LDFLAGS += $(ARCH_FLAGS)
 | 
	
		
			
				|  |  |  LDLIBS += $(addprefix -l, $(LIBS))
 | 
	
		
			
				|  |  |  LDLIBSXX += $(addprefix -l, $(LIBSXX))
 | 
	
		
			
				|  |  | -HOST_LDLIBS_PROTOC += $(addprefix -l, $(LIBS_PROTOC))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  HOST_CPPFLAGS = $(CPPFLAGS)
 | 
	
		
			
				|  |  |  HOST_CFLAGS = $(CFLAGS)
 | 
	
	
		
			
				|  | @@ -205,6 +202,8 @@ endif
 | 
	
		
			
				|  |  |  OPENSSL_ALPN_CHECK_CMD = $(CC) $(CFLAGS) $(CPPFLAGS) -o /dev/null test/build/openssl-alpn.c -lssl -lcrypto -ldl $(LDFLAGS)
 | 
	
		
			
				|  |  |  ZLIB_CHECK_CMD = $(CC) $(CFLAGS) $(CPPFLAGS) -o /dev/null test/build/zlib.c -lz $(LDFLAGS)
 | 
	
		
			
				|  |  |  PERFTOOLS_CHECK_CMD = $(CC) $(CFLAGS) $(CPPFLAGS) -o /dev/null test/build/perftools.c -lprofiler $(LDFLAGS)
 | 
	
		
			
				|  |  | +PROTOBUF_CHECK_CMD = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o /dev/null test/build/protobuf.cc -lprotobuf $(LDFLAGS)
 | 
	
		
			
				|  |  | +PROTOC_CHECK_CMD = protoc --version | grep -q libprotoc.3
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  ifndef REQUIRE_CUSTOM_LIBRARIES_$(CONFIG)
 | 
	
		
			
				|  |  |  HAS_SYSTEM_PERFTOOLS = $(shell $(PERFTOOLS_CHECK_CMD) 2> /dev/null && echo true || echo false)
 | 
	
	
		
			
				|  | @@ -217,12 +216,16 @@ endif
 | 
	
		
			
				|  |  |  ifndef REQUIRE_CUSTOM_LIBRARIES_$(CONFIG)
 | 
	
		
			
				|  |  |  HAS_SYSTEM_OPENSSL_ALPN = $(shell $(OPENSSL_ALPN_CHECK_CMD) 2> /dev/null && echo true || echo false)
 | 
	
		
			
				|  |  |  HAS_SYSTEM_ZLIB = $(shell $(ZLIB_CHECK_CMD) 2> /dev/null && echo true || echo false)
 | 
	
		
			
				|  |  | +HAS_SYSTEM_PROTOBUF = $(shell $(PROTOBUF_CHECK_CMD) 2> /dev/null && echo true || echo false)
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  # override system libraries if the config requires a custom compiled library
 | 
	
		
			
				|  |  |  HAS_SYSTEM_OPENSSL_ALPN = false
 | 
	
		
			
				|  |  |  HAS_SYSTEM_ZLIB = false
 | 
	
		
			
				|  |  | +HAS_SYSTEM_PROTOBUF = false
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +HAS_VALID_PROTOC = $(shell $(PROTOC_CHECK_CMD) 2> /dev/null && echo true || echo false)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  ifeq ($(wildcard third_party/openssl/ssl/ssl.h),)
 | 
	
		
			
				|  |  |  HAS_EMBEDDED_OPENSSL_ALPN = false
 | 
	
		
			
				|  |  |  else
 | 
	
	
		
			
				|  | @@ -235,11 +238,20 @@ else
 | 
	
		
			
				|  |  |  HAS_EMBEDDED_ZLIB = true
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +ifeq ($(wildcard third_party/protobuf/src/google/protobuf/descriptor.pb.h),)
 | 
	
		
			
				|  |  | +HAS_EMBEDDED_PROTOBUF = false
 | 
	
		
			
				|  |  | +ifneq ($(HAS_VALID_PROTOC),true)
 | 
	
		
			
				|  |  | +NO_PROTOC = true
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +HAS_EMBEDDED_PROTOBUF = true
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  ifeq ($(HAS_SYSTEM_ZLIB),false)
 | 
	
		
			
				|  |  |  ifeq ($(HAS_EMBEDDED_ZLIB),true)
 | 
	
		
			
				|  |  |  ZLIB_DEP = libs/$(CONFIG)/zlib/libz.a
 | 
	
		
			
				|  |  |  CPPFLAGS += -Ithird_party/zlib
 | 
	
		
			
				|  |  | -LDFLAGS += -Lthird_party/zlib
 | 
	
		
			
				|  |  | +LDFLAGS += -Llibs/$(CONFIG)/zlib
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  DEP_MISSING += zlib
 | 
	
		
			
				|  |  |  endif
 | 
	
	
		
			
				|  | @@ -261,6 +273,24 @@ endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  LDLIBS_SECURE += $(addprefix -l, $(LIBS_SECURE))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +ifeq ($(HAS_SYSTEM_PROTOBUF),false)
 | 
	
		
			
				|  |  | +ifeq ($(HAS_EMBEDDED_PROTOBUF),true)
 | 
	
		
			
				|  |  | +PROTOBUF_DEP = libs/$(CONFIG)/protobuf/libprotobuf.a
 | 
	
		
			
				|  |  | +CPPFLAGS += -Ithird_party/protobuf/src
 | 
	
		
			
				|  |  | +LDFLAGS += -Llibs/$(CONFIG)/protobuf
 | 
	
		
			
				|  |  | +PROTOC = bins/$(CONFIG)/protobuf/protoc
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +NO_PROTOBUF = true
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +LIBS_PROTOBUF = protobuf
 | 
	
		
			
				|  |  | +LIBS_PROTOC = protoc protobuf
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +LDLIBS_PROTOBUF += $(addprefix -l, $(LIBS_PROTOBUF))
 | 
	
		
			
				|  |  | +HOST_LDLIBS_PROTOC += $(addprefix -l, $(LIBS_PROTOC))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  ifeq ($(MAKECMDGOALS),clean)
 | 
	
		
			
				|  |  |  NO_DEPS = true
 | 
	
		
			
				|  |  |  endif
 | 
	
	
		
			
				|  | @@ -316,6 +346,10 @@ endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  openssl_dep_error: openssl_dep_message git_update stop
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +protobuf_dep_error: protobuf_dep_message git_update stop
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +protoc_dep_error: protoc_dep_message git_update stop
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  openssl_dep_message:
 | 
	
		
			
				|  |  |  	@echo
 | 
	
		
			
				|  |  |  	@echo "DEPENDENCY ERROR"
 | 
	
	
		
			
				|  | @@ -330,6 +364,34 @@ openssl_dep_message:
 | 
	
		
			
				|  |  |  	@echo "  make run_dep_checks"
 | 
	
		
			
				|  |  |  	@echo
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +protobuf_dep_message:
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "DEPENDENCY ERROR"
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "The target you are trying to run requires protobuf 3.0.0+"
 | 
	
		
			
				|  |  | +	@echo "Your system doesn't have it, and neither does the third_party directory."
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "Please consult INSTALL to get more information."
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "If you need information about why these tests failed, run:"
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "  make run_dep_checks"
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +protoc_dep_message:
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "DEPENDENCY ERROR"
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "The target you are trying to run requires protobuf-compiler 3.0.0+"
 | 
	
		
			
				|  |  | +	@echo "Your system doesn't have it, and neither does the third_party directory."
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "Please consult INSTALL to get more information."
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "If you need information about why these tests failed, run:"
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +	@echo "  make run_dep_checks"
 | 
	
		
			
				|  |  | +	@echo
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  stop:
 | 
	
		
			
				|  |  |  	@false
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -340,6 +402,9 @@ ${tgt.name}: bins/$(CONFIG)/${tgt.name}
 | 
	
		
			
				|  |  |  run_dep_checks:
 | 
	
		
			
				|  |  |  	$(OPENSSL_ALPN_CHECK_CMD) || true
 | 
	
		
			
				|  |  |  	$(ZLIB_CHECK_CMD) || true
 | 
	
		
			
				|  |  | +	$(PERFTOOLS_CHECK_CMD) || true
 | 
	
		
			
				|  |  | +	$(PROTOBUF_CHECK_CMD) || true
 | 
	
		
			
				|  |  | +	$(PROTOC_CHECK_CMD) || true
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  libs/$(CONFIG)/zlib/libz.a:
 | 
	
		
			
				|  |  |  	$(E) "[MAKE]    Building zlib"
 | 
	
	
		
			
				|  | @@ -361,6 +426,21 @@ endif
 | 
	
		
			
				|  |  |  	$(Q)mkdir -p libs/$(CONFIG)/openssl
 | 
	
		
			
				|  |  |  	$(Q)cp third_party/openssl/libssl.a third_party/openssl/libcrypto.a libs/$(CONFIG)/openssl
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +third_party/protobuf/configure:
 | 
	
		
			
				|  |  | +	$(E) "[AUTOGEN] Preparing protobuf"
 | 
	
		
			
				|  |  | +	$(Q)(cd third_party/protobuf ; autoreconf -f -i -Wall,no-obsolete)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +libs/$(CONFIG)/protobuf/libprotobuf.a: third_party/protobuf/configure
 | 
	
		
			
				|  |  | +	$(E) "[MAKE]    Building protobuf"
 | 
	
		
			
				|  |  | +	$(Q)(cd third_party/protobuf ; CC="$(CC)" CXX="$(CXX)" LDFLAGS="$(LDFLAGS_$(CONFIG)) -g" CXXFLAGS="-DLANG_CXX11 -std=c++11" CPPFLAGS="$(CPPFLAGS_$(CONFIG)) -g" ./configure --disable-shared --enable-static)
 | 
	
		
			
				|  |  | +	$(Q)$(MAKE) -C third_party/protobuf clean
 | 
	
		
			
				|  |  | +	$(Q)$(MAKE) -C third_party/protobuf
 | 
	
		
			
				|  |  | +	$(Q)mkdir -p libs/$(CONFIG)/protobuf
 | 
	
		
			
				|  |  | +	$(Q)mkdir -p bins/$(CONFIG)/protobuf
 | 
	
		
			
				|  |  | +	$(Q)cp third_party/protobuf/src/.libs/libprotoc.a libs/$(CONFIG)/protobuf
 | 
	
		
			
				|  |  | +	$(Q)cp third_party/protobuf/src/.libs/libprotobuf.a libs/$(CONFIG)/protobuf
 | 
	
		
			
				|  |  | +	$(Q)cp third_party/protobuf/src/protoc bins/$(CONFIG)/protobuf
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  static: static_c static_cxx
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static_c: \
 | 
	
	
		
			
				|  | @@ -531,10 +611,14 @@ ifeq ($(CONFIG),opt)
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  % for p in protos:
 | 
	
		
			
				|  |  | -gens/${p}.pb.cc: ${p}.proto $(PROTOC_PLUGINS)
 | 
	
		
			
				|  |  | +ifeq ($(NO_PROTOC),true)
 | 
	
		
			
				|  |  | +gens/${p}.pb.cc: protoc_dep_error
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +gens/${p}.pb.cc: ${p}.proto $(PROTOBUF_DEP) $(PROTOC_PLUGINS)
 | 
	
		
			
				|  |  |  	$(E) "[PROTOC]  Generating protobuf CC file from $<"
 | 
	
		
			
				|  |  |  	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  |  	$(Q) $(PROTOC) --cpp_out=gens --grpc_out=gens --plugin=protoc-gen-grpc=bins/$(CONFIG)/cpp_plugin $<
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  % endfor
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -704,17 +788,60 @@ endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +% if lib.language == 'c++':
 | 
	
		
			
				|  |  | +ifeq ($(NO_PROTOBUF),true)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +libs/$(CONFIG)/lib${lib.name}.a: protobuf_dep_error
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +% if lib.build == "all":
 | 
	
		
			
				|  |  | +ifeq ($(SYSTEM),MINGW32)
 | 
	
		
			
				|  |  | +libs/$(CONFIG)/${lib.name}.$(SHARED_EXT): protobuf_dep_error
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +libs/$(CONFIG)/lib${lib.name}.$(SHARED_EXT): protobuf_dep_error
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +% endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +% endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  ifneq ($(OPENSSL_DEP),)
 | 
	
		
			
				|  |  | +# This is to ensure the embedded OpenSSL is built beforehand, properly
 | 
	
		
			
				|  |  | +# installing headers to their final destination on the drive. We need this
 | 
	
		
			
				|  |  | +# otherwise parallel compilation will fail if a source is compiled first.
 | 
	
		
			
				|  |  |  % for src in lib.src:
 | 
	
		
			
				|  |  |  ${src}: $(OPENSSL_DEP)
 | 
	
		
			
				|  |  |  % endfor
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -libs/$(CONFIG)/lib${lib.name}.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIB${lib.name.upper()}_OBJS)
 | 
	
		
			
				|  |  | +libs/$(CONFIG)/lib${lib.name}.a: $(ZLIB_DEP) $(OPENSSL_DEP)\
 | 
	
		
			
				|  |  |  ## The else here corresponds to the if secure earlier.
 | 
	
		
			
				|  |  |  % else:
 | 
	
		
			
				|  |  | -libs/$(CONFIG)/lib${lib.name}.a: $(ZLIB_DEP) $(LIB${lib.name.upper()}_OBJS)
 | 
	
		
			
				|  |  | +% if lib.language == 'c++':
 | 
	
		
			
				|  |  | +ifeq ($(NO_PROTOBUF),true)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# You can't build a C++ library if you don't have protobuf - a bit overreached, but still okay.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +libs/$(CONFIG)/lib${lib.name}.a: protobuf_dep_error
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +% if lib.build == "all":
 | 
	
		
			
				|  |  | +ifeq ($(SYSTEM),MINGW32)
 | 
	
		
			
				|  |  | +libs/$(CONFIG)/${lib.name}.$(SHARED_EXT): protobuf_dep_error
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +libs/$(CONFIG)/lib${lib.name}.$(SHARED_EXT): protobuf_dep_error
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +% endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +% endif
 | 
	
		
			
				|  |  | +libs/$(CONFIG)/lib${lib.name}.a: $(ZLIB_DEP)\
 | 
	
		
			
				|  |  | +% endif
 | 
	
		
			
				|  |  | +% if lib.language == 'c++':
 | 
	
		
			
				|  |  | + $(PROTOBUF_DEP)\
 | 
	
		
			
				|  |  |  % endif
 | 
	
		
			
				|  |  | + $(LIB${lib.name.upper()}_OBJS)
 | 
	
		
			
				|  |  |  	$(E) "[AR]      Creating $@"
 | 
	
		
			
				|  |  |  	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  |  	$(Q) rm -f libs/$(CONFIG)/lib${lib.name}.a
 | 
	
	
		
			
				|  | @@ -780,10 +907,15 @@ else
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  % endif
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +% if lib.get('secure', True):
 | 
	
		
			
				|  |  |  ## If the lib was secure, we have to close the Makefile's if that tested
 | 
	
		
			
				|  |  |  ## the presence of an ALPN-capable OpenSSL.
 | 
	
		
			
				|  |  | -% if lib.get('secure', True):
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +% endif
 | 
	
		
			
				|  |  | +% if lib.language == 'c++':
 | 
	
		
			
				|  |  | +## If the lib was C++, we have to close the Makefile's if that tested
 | 
	
		
			
				|  |  | +## the presence of protobuf 3.0.0+
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  % endif
 | 
	
	
		
			
				|  | @@ -840,7 +972,20 @@ else
 | 
	
		
			
				|  |  |  ## That simplifies the codegen a bit, but prevents a fully defined Makefile.
 | 
	
		
			
				|  |  |  ## I can live with that.
 | 
	
		
			
				|  |  |  ##
 | 
	
		
			
				|  |  | +% if tgt.build == 'protoc':
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ifeq ($(NO_PROTOBUF),true)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# You can't build the protoc plugins if you don't have protobuf 3.0.0+.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +bins/$(CONFIG)/${tgt.name}: protobuf_dep_error
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +else
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +bins/$(CONFIG)/${tgt.name}: $(PROTOBUF_DEP) $(${tgt.name.upper()}_OBJS)\
 | 
	
		
			
				|  |  | +% else:
 | 
	
		
			
				|  |  |  bins/$(CONFIG)/${tgt.name}: $(${tgt.name.upper()}_OBJS)\
 | 
	
		
			
				|  |  | +% endif
 | 
	
		
			
				|  |  |  % for dep in tgt.deps:
 | 
	
		
			
				|  |  |   libs/$(CONFIG)/lib${dep}.a\
 | 
	
		
			
				|  |  |  % endfor
 | 
	
	
		
			
				|  | @@ -870,9 +1015,9 @@ bins/$(CONFIG)/${tgt.name}: $(${tgt.name.upper()}_OBJS)\
 | 
	
		
			
				|  |  |  % endfor
 | 
	
		
			
				|  |  |  % if tgt.language == "c++":
 | 
	
		
			
				|  |  |  % if tgt.build == 'protoc':
 | 
	
		
			
				|  |  | - $(HOST_LDLIBSXX)\
 | 
	
		
			
				|  |  | + $(HOST_LDLIBSXX) $(HOST_LDLIBS_PROTOC)\
 | 
	
		
			
				|  |  |  % else:
 | 
	
		
			
				|  |  | - $(LDLIBSXX)\
 | 
	
		
			
				|  |  | + $(LDLIBSXX) $(LDLIBS_PROTOBUF)\
 | 
	
		
			
				|  |  |  % endif
 | 
	
		
			
				|  |  |  % endif
 | 
	
		
			
				|  |  |  % if tgt.build == 'protoc':
 | 
	
	
		
			
				|  | @@ -886,6 +1031,10 @@ bins/$(CONFIG)/${tgt.name}: $(${tgt.name.upper()}_OBJS)\
 | 
	
		
			
				|  |  |   $(LDLIBS_SECURE)\
 | 
	
		
			
				|  |  |  % endif
 | 
	
		
			
				|  |  |   -o bins/$(CONFIG)/${tgt.name}
 | 
	
		
			
				|  |  | +% if tgt.build == 'protoc':
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +endif
 | 
	
		
			
				|  |  | +% endif
 | 
	
		
			
				|  |  |  % if tgt.get('secure', True):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  endif
 |