diff --git a/Makefile b/Makefile index 39fa4d5..c5c262e 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,10 @@ # This makefile supports different OS and CPU setups. # You should use it this way : # make TARGET=os CPU=cpu REGEX=lib - +# +# Some external components may be build with it, such dlmalloc : +# +# make DLMALLOC_SRC=/usr/local/src/dlmalloc.c # Select target OS. TARGET must match a system for which COPTS and LIBS are # correctly defined below. @@ -180,6 +183,12 @@ ifneq ($(USE_REGPARM),) OPTIONS += -DCONFIG_HAP_USE_REGPARM endif +ifneq ($(DLMALLOC_SRC),) +# May be changed to patch PAGE_SIZE on every platform +DLMALLOC_THRES=4096 +OPT_OBJS += src/dlmalloc.o +endif + ifneq ($(VERSION),) OPTIONS += -DCONFIG_HAPROXY_VERSION=\"$(VERSION)$(SUBVERS)\" endif @@ -228,6 +237,9 @@ objsize: haproxy %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< +src/dlmalloc.o: $(DLMALLOC_SRC) + $(CC) $(CFLAGS) -DDEFAULT_MMAP_THRESHOLD=$(DLMALLOC_THRES) -c -o $@ $< + clean: rm -f *.[oas] src/*.[oas] core haproxy test for dir in . src include/* doc; do rm -f $$dir/*~ $$dir/*.rej;done diff --git a/Makefile.bsd b/Makefile.bsd index 14e70f4..025bc45 100644 --- a/Makefile.bsd +++ b/Makefile.bsd @@ -1,6 +1,11 @@ # This makefile is dedicated to OpenBSD (and possibly other BSDs) # You should use it this way : # make TARGET=os CPU=cpu +# +# Some optional components may be added, such as DLMALLOC : +# +# make TARGET=freebsd CPU=i686 DLMALLOC_SRC=/usr/local/src/dlmalloc.c \ +# OPT_OBJS=src/dlmalloc.o VERSION := 1.3.12 @@ -66,11 +71,17 @@ SMALL_OPTS = -DBUFSIZE=8030 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=1024 ADDINC = ADDLIB = +# redefine this if you want to add some special .o files +OPT_OBJS = + # set some defines when needed. # Known ones are -DENABLE_POLL # - use -DTPROXY to compile with transparent proxy support. DEFINE = -DTPROXY +# May be changed to patch PAGE_SIZE on every platform when using dlmalloc +DLMALLOC_THRES=4096 + # global options TARGET_OPTS=$(COPTS.$(TARGET)) REGEX_OPTS=$(COPTS.$(REGEX)) @@ -92,7 +103,7 @@ OBJS = src/haproxy.o src/list.o src/chtbl.o src/hashpjw.o src/base64.o \ all: haproxy -haproxy: $(OBJS) +haproxy: $(OBJS) $(OPT_OBJS) $(LD) $(LDFLAGS) -o $@ $> $(LIBS) .SUFFIXES: .c.o @@ -100,6 +111,9 @@ haproxy: $(OBJS) .c.o: $(CC) $(CFLAGS) -c -o $@ $> +src/dlmalloc.o: $(DLMALLOC_SRC) + $(CC) $(CFLAGS) -DDEFAULT_MMAP_THRESHOLD=$(DLMALLOC_THRES) -c -o $@ $> + clean: rm -f *.[oas] src/*.[oas] core haproxy test for dir in . src include/* doc; do rm -f $$dir/*~ $$dir/*.rej;done diff --git a/Makefile.osx b/Makefile.osx index 0a2aa74..f588478 100644 --- a/Makefile.osx +++ b/Makefile.osx @@ -1,6 +1,11 @@ # This makefile is dedicated to darwin (and possibly other BSDs) # You should use it this way : # make TARGET=os CPU=cpu +# +# Some optional components may be added, such as DLMALLOC : +# +# make DLMALLOC_SRC=/usr/local/src/dlmalloc.c \ +# OPT_OBJS=src/dlmalloc.o VERSION := 1.3.12 @@ -71,6 +76,9 @@ ADDLIB = # - use -DTPROXY to compile with transparent proxy support. DEFINE = -DTPROXY +# May be changed to patch PAGE_SIZE on every platform when using dlmalloc +DLMALLOC_THRES=4096 + # global options TARGET_OPTS=$(COPTS.$(TARGET)) REGEX_OPTS=$(COPTS.$(REGEX)) @@ -100,6 +108,9 @@ haproxy: $(OBJS) .c.o: $(CC) $(CFLAGS) -c -o $@ $< +src/dlmalloc.o: $(DLMALLOC_SRC) + $(CC) $(CFLAGS) -DDEFAULT_MMAP_THRESHOLD=$(DLMALLOC_THRES) -c -o $@ $< + clean: rm -f *.[oas] src/*.[oas] core haproxy test for dir in . src include/* doc; do rm -f $$dir/*~ $$dir/*.rej;done