|  | @@ -209,9 +209,11 @@
 | 
	
		
			
				|  |  |    else
 | 
	
		
			
				|  |  |    CXXFLAGS += -std=c++0x
 | 
	
		
			
				|  |  |    endif
 | 
	
		
			
				|  |  | -  CFLAGS += -g -Wall -Wextra -Werror -Wno-long-long -Wno-unused-parameter
 | 
	
		
			
				|  |  | -  CXXFLAGS += -g -Wall -Wextra -Werror -Wno-long-long -Wno-unused-parameter
 | 
	
		
			
				|  |  | -  LDFLAGS += -g
 | 
	
		
			
				|  |  | +  % for arg in ['CFLAGS', 'CXXFLAGS', 'CPPFLAGS', 'LDFLAGS', 'DEFINES']:
 | 
	
		
			
				|  |  | +  %  if defaults.get('global', []).get(arg, None) is not None:
 | 
	
		
			
				|  |  | +  ${arg} += ${defaults.get('global').get(arg)}
 | 
	
		
			
				|  |  | +  %  endif
 | 
	
		
			
				|  |  | +  % endfor
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    CPPFLAGS += $(CPPFLAGS_$(CONFIG))
 | 
	
		
			
				|  |  |    CFLAGS += $(CFLAGS_$(CONFIG))
 | 
	
	
		
			
				|  | @@ -352,20 +354,20 @@
 | 
	
		
			
				|  |  |    OPENSSL_LIBS = ssl crypto
 | 
	
		
			
				|  |  |    endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  OPENSSL_ALPN_CHECK_CMD = $(CC) $(CFLAGS) $(CPPFLAGS) -o $(TMPOUT) test/build/openssl-alpn.c $(addprefix -l, $(OPENSSL_LIBS)) $(LDFLAGS)
 | 
	
		
			
				|  |  | -  OPENSSL_NPN_CHECK_CMD = $(CC) $(CFLAGS) $(CPPFLAGS) -o $(TMPOUT) test/build/openssl-npn.c $(addprefix -l, $(OPENSSL_LIBS)) $(LDFLAGS)
 | 
	
		
			
				|  |  | -  ZLIB_CHECK_CMD = $(CC) $(CFLAGS) $(CPPFLAGS) -o $(TMPOUT) test/build/zlib.c -lz $(LDFLAGS)
 | 
	
		
			
				|  |  | -  PROTOBUF_CHECK_CMD = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $(TMPOUT) test/build/protobuf.cc -lprotobuf $(LDFLAGS)
 | 
	
		
			
				|  |  | +  OPENSSL_ALPN_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/openssl-alpn.c $(addprefix -l, $(OPENSSL_LIBS)) $(LDFLAGS)
 | 
	
		
			
				|  |  | +  OPENSSL_NPN_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/openssl-npn.c $(addprefix -l, $(OPENSSL_LIBS)) $(LDFLAGS)
 | 
	
		
			
				|  |  | +  ZLIB_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/zlib.c -lz $(LDFLAGS)
 | 
	
		
			
				|  |  | +  PROTOBUF_CHECK_CMD = $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $(TMPOUT) test/build/protobuf.cc -lprotobuf $(LDFLAGS)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    endif # HAS_PKG_CONFIG
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  PERFTOOLS_CHECK_CMD = $(CC) $(CFLAGS) $(CPPFLAGS) -o $(TMPOUT) test/build/perftools.c -lprofiler $(LDFLAGS)
 | 
	
		
			
				|  |  | +  PERFTOOLS_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/perftools.c -lprofiler $(LDFLAGS)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    PROTOC_CHECK_CMD = which protoc > /dev/null
 | 
	
		
			
				|  |  |    PROTOC_CHECK_VERSION_CMD = protoc --version | grep -q libprotoc.3
 | 
	
		
			
				|  |  |    DTRACE_CHECK_CMD = which dtrace > /dev/null
 | 
	
		
			
				|  |  | -  SYSTEMTAP_HEADERS_CHECK_CMD = $(CC) $(CFLAGS) $(CPPFLAGS) -o $(TMPOUT) test/build/systemtap.c $(LDFLAGS)
 | 
	
		
			
				|  |  | -  ZOOKEEPER_CHECK_CMD = $(CC) $(CFLAGS) $(CPPFLAGS) -o $(TMPOUT) test/build/zookeeper.c $(LDFLAGS) -lzookeeper_mt
 | 
	
		
			
				|  |  | +  SYSTEMTAP_HEADERS_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/systemtap.c $(LDFLAGS)
 | 
	
		
			
				|  |  | +  ZOOKEEPER_CHECK_CMD = $(CC) $(CPPFLAGS) $(CFLAGS) -o $(TMPOUT) test/build/zookeeper.c $(LDFLAGS) -lzookeeper_mt
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    ifndef REQUIRE_CUSTOM_LIBRARIES_$(CONFIG)
 | 
	
		
			
				|  |  |    HAS_SYSTEM_PERFTOOLS ?= $(shell $(PERFTOOLS_CHECK_CMD) 2> /dev/null && echo true || echo false)
 | 
	
	
		
			
				|  | @@ -1198,12 +1200,12 @@
 | 
	
		
			
				|  |  |    $(OBJDIR)/$(CONFIG)/%.o : %.c
 | 
	
		
			
				|  |  |    	$(E) "[C]       Compiling $<"
 | 
	
		
			
				|  |  |    	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | -  	$(Q) $(CC) $(CFLAGS) $(CPPFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
 | 
	
		
			
				|  |  | +  	$(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    $(OBJDIR)/$(CONFIG)/%.o : $(GENDIR)/%.pb.cc
 | 
	
		
			
				|  |  |    	$(E) "[CXX]     Compiling $<"
 | 
	
		
			
				|  |  |    	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | -  	$(Q) $(CXX) $(CXXFLAGS) $(CPPFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
 | 
	
		
			
				|  |  | +  	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    $(OBJDIR)/$(CONFIG)/src/compiler/%.o : src/compiler/%.cc
 | 
	
		
			
				|  |  |    	$(E) "[HOSTCXX] Compiling $<"
 | 
	
	
		
			
				|  | @@ -1213,7 +1215,7 @@
 | 
	
		
			
				|  |  |    $(OBJDIR)/$(CONFIG)/%.o : %.cc
 | 
	
		
			
				|  |  |    	$(E) "[CXX]     Compiling $<"
 | 
	
		
			
				|  |  |    	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | -  	$(Q) $(CXX) $(CXXFLAGS) $(CPPFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
 | 
	
		
			
				|  |  | +  	$(Q) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    install: install_c install_cxx install-plugins install-certs verify-install
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1435,16 +1437,10 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    LIB${lib.name.upper()}_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIB${lib.name.upper()}_SRC))))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  % if lib.boringssl:
 | 
	
		
			
				|  |  | -  # boringssl needs an override to ensure that it does not include
 | 
	
		
			
				|  |  | -  # system openssl headers regardless of other configuration
 | 
	
		
			
				|  |  | -  # we do so here with a target specific variable assignment
 | 
	
		
			
				|  |  | -  $(LIB${lib.name.upper()}_OBJS): CFLAGS := -Ithird_party/boringssl/include $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value -fvisibility=hidden
 | 
	
		
			
				|  |  | -  $(LIB${lib.name.upper()}_OBJS): CXXFLAGS := -Ithird_party/boringssl/include $(CXXFLAGS) -fvisibility=hidden
 | 
	
		
			
				|  |  | -  $(LIB${lib.name.upper()}_OBJS): CPPFLAGS += -DOPENSSL_NO_ASM -D_GNU_SOURCE
 | 
	
		
			
				|  |  | -  % elif lib.zlib:
 | 
	
		
			
				|  |  | -  $(LIB${lib.name.upper()}_OBJS): CFLAGS := $(CFLAGS) -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-implicit-function-declaration $(W_NO_SHIFT_NEGATIVE_VALUE) -fvisibility=hidden
 | 
	
		
			
				|  |  | -  % else:
 | 
	
		
			
				|  |  | +  % if lib.get('defaults', None):
 | 
	
		
			
				|  |  | +  %  for name, value in defaults.get(lib.defaults).iteritems():
 | 
	
		
			
				|  |  | +  $(LIB${lib.name.upper()}_OBJS): ${name} += ${value}
 | 
	
		
			
				|  |  | +  %  endfor
 | 
	
		
			
				|  |  |    % endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    ## If the library requires OpenSSL, let's add some restrictions.
 | 
	
	
		
			
				|  | @@ -1504,7 +1500,10 @@
 | 
	
		
			
				|  |  |    else
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    % endif
 | 
	
		
			
				|  |  | -  $(LIBDIR)/$(CONFIG)/lib${lib.name}.a: $(ZLIB_DEP) $(OPENSSL_DEP) \
 | 
	
		
			
				|  |  | +  $(LIBDIR)/$(CONFIG)/lib${lib.name}.a: \
 | 
	
		
			
				|  |  | +  % if lib.name != 'z':
 | 
	
		
			
				|  |  | +  $(ZLIB_DEP) \
 | 
	
		
			
				|  |  | +  % endif
 | 
	
		
			
				|  |  |    % endif
 | 
	
		
			
				|  |  |    % if lib.language == 'c++':
 | 
	
		
			
				|  |  |     $(PROTOBUF_DEP)\
 | 
	
	
		
			
				|  | @@ -1789,7 +1788,7 @@
 | 
	
		
			
				|  |  |    $(OBJDIR)/$(CONFIG)/${os.path.splitext(src)[0]}.o : ${src}
 | 
	
		
			
				|  |  |    	$(E) "[C]       Compiling $<"
 | 
	
		
			
				|  |  |    	$(Q) mkdir -p `dirname $@`
 | 
	
		
			
				|  |  | -  	$(Q) $(CC) $(CFLAGS) $(CPPFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
 | 
	
		
			
				|  |  | +  	$(Q) $(CC) $(CPPFLAGS) $(CFLAGS) -std=c89 -pedantic -MMD -MF $(addsuffix .dep, $(basename $@)) -c -o $@ $<
 | 
	
		
			
				|  |  |    % endfor
 | 
	
		
			
				|  |  |    % endif
 | 
	
		
			
				|  |  |  
 |