|  | @@ -16,7 +16,7 @@
 | 
	
		
			
				|  |  |      m = proto_re.match(filename)
 | 
	
		
			
				|  |  |      if not m:
 | 
	
		
			
				|  |  |        return filename
 | 
	
		
			
				|  |  | -    return 'gens/' + m.group(1) + '.pb.cc'
 | 
	
		
			
				|  |  | +    return '$(GENDIR)/' + m.group(1) + '.pb.cc'
 | 
	
		
			
				|  |  |  %>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -163,7 +163,7 @@ CXXFLAGS += -std=c++11
 | 
	
		
			
				|  |  |  CPPFLAGS += -g -fPIC -Wall -Wextra -Werror -Wno-long-long -Wno-unused-parameter
 | 
	
		
			
				|  |  |  LDFLAGS += -g -fPIC
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -INCLUDES = . include gens
 | 
	
		
			
				|  |  | +INCLUDES = . include $(GENDIR)
 | 
	
		
			
				|  |  |  ifeq ($(SYSTEM),Darwin)
 | 
	
		
			
				|  |  |  LIBS = m z
 | 
	
		
			
				|  |  |  else
 | 
	
	
		
			
				|  | @@ -272,7 +272,7 @@ ifeq ($(HAS_SYSTEM_ZLIB),false)
 | 
	
		
			
				|  |  |  ifeq ($(HAS_EMBEDDED_ZLIB),true)
 | 
	
		
			
				|  |  |  ZLIB_DEP = $(LIBDIR)/$(CONFIG)/zlib/libz.a
 | 
	
		
			
				|  |  |  CPPFLAGS += -Ithird_party/zlib
 | 
	
		
			
				|  |  | -LDFLAGS += -Llibs/$(CONFIG)/zlib
 | 
	
		
			
				|  |  | +LDFLAGS += -L$(LIBDIR)/$(CONFIG)/zlib
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  DEP_MISSING += zlib
 | 
	
		
			
				|  |  |  endif
 | 
	
	
		
			
				|  | @@ -283,7 +283,7 @@ ifeq ($(HAS_EMBEDDED_OPENSSL_ALPN),true)
 | 
	
		
			
				|  |  |  OPENSSL_DEP = $(LIBDIR)/$(CONFIG)/openssl/libssl.a
 | 
	
		
			
				|  |  |  OPENSSL_MERGE_LIBS += $(LIBDIR)/$(CONFIG)/openssl/libssl.a $(LIBDIR)/$(CONFIG)/openssl/libcrypto.a
 | 
	
		
			
				|  |  |  CPPFLAGS += -Ithird_party/openssl/include
 | 
	
		
			
				|  |  | -LDFLAGS += -Llibs/$(CONFIG)/openssl
 | 
	
		
			
				|  |  | +LDFLAGS += -L$(LIBDIR)/$(CONFIG)/openssl
 | 
	
		
			
				|  |  |  LIBS_SECURE = dl
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  NO_SECURE = true
 | 
	
	
		
			
				|  | @@ -298,7 +298,7 @@ ifeq ($(HAS_SYSTEM_PROTOBUF),false)
 | 
	
		
			
				|  |  |  ifeq ($(HAS_EMBEDDED_PROTOBUF),true)
 | 
	
		
			
				|  |  |  PROTOBUF_DEP = $(LIBDIR)/$(CONFIG)/protobuf/libprotobuf.a
 | 
	
		
			
				|  |  |  CPPFLAGS += -Ithird_party/protobuf/src
 | 
	
		
			
				|  |  | -LDFLAGS += -Llibs/$(CONFIG)/protobuf
 | 
	
		
			
				|  |  | +LDFLAGS += -L$(LIBDIR)/$(CONFIG)/protobuf
 | 
	
		
			
				|  |  |  PROTOC = $(BINDIR)/$(CONFIG)/protobuf/protoc
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  NO_PROTOBUF = true
 | 
	
	
		
			
				|  | @@ -540,7 +540,7 @@ test_c: buildtests_c
 | 
	
		
			
				|  |  |  % for tgt in targets:
 | 
	
		
			
				|  |  |  % if tgt.build == 'test' and tgt.get('run', True) and not tgt.language == 'c++':
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing ${tgt.name}"
 | 
	
		
			
				|  |  | -	$(Q) ./bins/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 )
 | 
	
		
			
				|  |  | +	$(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 )
 | 
	
		
			
				|  |  |  % endif
 | 
	
		
			
				|  |  |  % endfor
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -549,7 +549,7 @@ test_cxx: buildtests_cxx
 | 
	
		
			
				|  |  |  % for tgt in targets:
 | 
	
		
			
				|  |  |  % if tgt.build == 'test' and tgt.get('run', True) and tgt.language == 'c++':
 | 
	
		
			
				|  |  |  	$(E) "[RUN]     Testing ${tgt.name}"
 | 
	
		
			
				|  |  | -	$(Q) ./bins/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 )
 | 
	
		
			
				|  |  | +	$(Q) $(BINDIR)/$(CONFIG)/${tgt.name} || ( echo test ${tgt.name} failed ; exit 1 )
 | 
	
		
			
				|  |  |  % endif
 | 
	
		
			
				|  |  |  % endfor
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -638,7 +638,7 @@ else
 | 
	
		
			
				|  |  |  $(GENDIR)/${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 $<
 | 
	
		
			
				|  |  | +	$(Q) $(PROTOC) --cpp_out=$(GENDIR) --grpc_out=$(GENDIR) --plugin=protoc-gen-grpc=$(BINDIR)/$(CONFIG)/cpp_plugin $<
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  % endfor
 | 
	
	
		
			
				|  | @@ -751,7 +751,7 @@ endif
 | 
	
		
			
				|  |  |  endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  clean:
 | 
	
		
			
				|  |  | -	$(Q) $(RM) -rf objs libs bins gens
 | 
	
		
			
				|  |  | +	$(Q) $(RM) -rf $(OBJDIR) $(LIBDIR) $(BINDIR) $(GENDIR)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # The various libraries
 | 
	
	
		
			
				|  | @@ -871,7 +871,7 @@ $(LIBDIR)/$(CONFIG)/lib${lib.name}.a: $(ZLIB_DEP)\
 | 
	
		
			
				|  |  |  % if lib.get('secure', True):
 | 
	
		
			
				|  |  |  	$(Q) rm -rf tmp-merge
 | 
	
		
			
				|  |  |  	$(Q) mkdir tmp-merge
 | 
	
		
			
				|  |  | -	$(Q) ( cd tmp-merge ; $(AR) x ../libs/$(CONFIG)/lib${lib.name}.a )
 | 
	
		
			
				|  |  | +	$(Q) ( cd tmp-merge ; $(AR) x ../$(LIBDIR)/$(CONFIG)/lib${lib.name}.a )
 | 
	
		
			
				|  |  |  	$(Q) for l in $(OPENSSL_MERGE_LIBS) ; do ( cd tmp-merge ; <%text>ar x ../$${l}</%text> ) ; done
 | 
	
		
			
				|  |  |  	$(Q) rm -f $(LIBDIR)/$(CONFIG)/lib${lib.name}.a tmp-merge/__.SYMDEF*
 | 
	
		
			
				|  |  |  	$(Q) ar rcs $(LIBDIR)/$(CONFIG)/lib${lib.name}.a tmp-merge/*
 | 
	
	
		
			
				|  | @@ -888,8 +888,8 @@ endif
 | 
	
		
			
				|  |  |    else:
 | 
	
		
			
				|  |  |      ld = '$(LD)'
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  out_base = 'libs/$(CONFIG)/' + lib.name
 | 
	
		
			
				|  |  | -  out_libbase = 'libs/$(CONFIG)/lib' + lib.name
 | 
	
		
			
				|  |  | +  out_base = '$(LIBDIR)/$(CONFIG)/' + lib.name
 | 
	
		
			
				|  |  | +  out_libbase = '$(LIBDIR)/$(CONFIG)/lib' + lib.name
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    common = '$(LIB' + lib.name.upper() + '_OBJS) $(LDLIBS)'
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -901,7 +901,7 @@ endif
 | 
	
		
			
				|  |  |      libs = libs + ' -l' + dep
 | 
	
		
			
				|  |  |      lib_deps = lib_deps + ' $(LIBDIR)/$(CONFIG)/lib' + dep + '.$(SHARED_EXT)'
 | 
	
		
			
				|  |  |      mingw_libs = mingw_libs + ' -l' + dep + '-imp'
 | 
	
		
			
				|  |  | -    mingw_lib_deps = mingw_lib_deps + 'libs/$(CONFIG)/' + dep + '.$(SHARED_EXT)'
 | 
	
		
			
				|  |  | +    mingw_lib_deps = mingw_lib_deps + '$(LIBDIR)/$(CONFIG)/' + dep + '.$(SHARED_EXT)'
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if lib.get('secure', True):
 | 
	
		
			
				|  |  |      common = common + ' $(LDLIBS_SECURE) $(OPENSSL_MERGE_LIBS)'
 | 
	
	
		
			
				|  | @@ -914,15 +914,15 @@ ifeq ($(SYSTEM),MINGW32)
 | 
	
		
			
				|  |  |  ${out_base}.$(SHARED_EXT): $(LIB${lib.name.upper()}_OBJS) ${mingw_lib_deps}
 | 
	
		
			
				|  |  |  	$(E) "[LD]      Linking $@"
 | 
	
		
			
				|  |  |  	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | -	$(Q) ${ld} $(LDFLAGS) -Llibs/$(CONFIG) -shared -Wl,--output-def=${out_base}.def -Wl,--out-implib=${out_libbase}-imp.a -o ${out_base}.$(SHARED_EXT) ${common}${mingw_libs}
 | 
	
		
			
				|  |  | +	$(Q) ${ld} $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,--output-def=${out_base}.def -Wl,--out-implib=${out_libbase}-imp.a -o ${out_base}.$(SHARED_EXT) ${common}${mingw_libs}
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  |  ${out_libbase}.$(SHARED_EXT): $(LIB${lib.name.upper()}_OBJS) ${lib_deps}
 | 
	
		
			
				|  |  |  	$(E) "[LD]      Linking $@"
 | 
	
		
			
				|  |  |  	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  |  ifeq ($(SYSTEM),Darwin)
 | 
	
		
			
				|  |  | -	$(Q) ${ld} $(LDFLAGS) -Llibs/$(CONFIG) -dynamiclib -o ${out_libbase}.$(SHARED_EXT) ${common}${libs}
 | 
	
		
			
				|  |  | +	$(Q) ${ld} $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -dynamiclib -o ${out_libbase}.$(SHARED_EXT) ${common}${libs}
 | 
	
		
			
				|  |  |  else
 | 
	
		
			
				|  |  | -	$(Q) ${ld} $(LDFLAGS) -Llibs/$(CONFIG) -shared -Wl,-soname,lib${lib.name}.so.${settings.version.major} -o ${out_libbase}.$(SHARED_EXT) ${common}${libs}
 | 
	
		
			
				|  |  | +	$(Q) ${ld} $(LDFLAGS) -L$(LIBDIR)/$(CONFIG) -shared -Wl,-soname,lib${lib.name}.so.${settings.version.major} -o ${out_libbase}.$(SHARED_EXT) ${common}${libs}
 | 
	
		
			
				|  |  |  	$(Q) ln -sf lib${lib.name}.$(SHARED_EXT) ${out_libbase}.so.${settings.version.major}
 | 
	
		
			
				|  |  |  	$(Q) ln -sf lib${lib.name}.$(SHARED_EXT) ${out_libbase}.so
 | 
	
		
			
				|  |  |  endif
 |