BUILD_OPTIONS += $(call ignore_implicit,USE_STATIC_PCRE)
endif
+# This one can be changed to look for ebtree files in an external directory
+EBTREE_DIR := ebtree
#### Global compile options
VERBOSE_CFLAGS = $(CFLAGS) $(TARGET_CFLAGS) $(SMALL_OPTS) $(DEFINE)
-COPTS = -Iinclude -Wall
+COPTS = -Iinclude -I$(EBTREE_DIR) -Wall
COPTS += $(CFLAGS) $(TARGET_CFLAGS) $(SMALL_OPTS) $(DEFINE) $(SILENT_DEFINE)
COPTS += $(DEBUG) $(OPTIONS_CFLAGS) $(ADDINC)
src/lb_chash.o src/lb_fwlc.o src/lb_fwrr.o src/lb_map.o \
src/stream_interface.o src/dumpstats.o src/proto_tcp.o \
src/session.o src/hdr_idx.o src/ev_select.o src/signal.o \
- src/acl.o src/memory.o src/freq_ctr.o \
- src/ebtree.o src/eb32tree.o
+ src/acl.o src/memory.o src/freq_ctr.o
-haproxy: $(OBJS) $(OPTIONS_OBJS)
+EBTREE_OBJS = $(EBTREE_DIR)/ebtree.o \
+ $(EBTREE_DIR)/eb32tree.o $(EBTREE_DIR)/eb64tree.o \
+ $(EBTREE_DIR)/ebmbtree.o $(EBTREE_DIR)/ebsttree.o \
+ $(EBTREE_DIR)/ebimtree.o $(EBTREE_DIR)/ebistree.o
+
+# Not used right now
+LIB_EBTREE = $(EBTREE_DIR)/libebtree.a
+
+haproxy: $(OBJS) $(OPTIONS_OBJS) $(EBTREE_OBJS)
$(LD) $(LDFLAGS) -o $@ $^ $(LDOPTS)
+$(LIB_EBTREE): $(EBTREE_OBJS)
+ $(AR) rv $@ $^
+
objsize: haproxy
@objdump -t $^|grep ' g '|grep -F '.text'|awk '{print $$5 FS $$6}'|sort
install: install-bin install-man install-doc
clean:
- rm -f *.[oas] src/*.[oas] core haproxy test
- for dir in . src include/* doc; do rm -f $$dir/*~ $$dir/*.rej;done
+ rm -f *.[oas] src/*.[oas] ebtree/*.[oas] haproxy test
+ for dir in . src include/* doc ebtree; do rm -f $$dir/*~ $$dir/*.rej $$dir/core; done
rm -f haproxy-$(VERSION).tar.gz haproxy-$(VERSION)$(SUBVERS).tar.gz
rm -f haproxy-$(VERSION) nohup.out gmon.out
VER_OPTS := -DCONFIG_HAPROXY_VERSION=\"$(VERSION)$(SUBVERS)\" \
-DCONFIG_HAPROXY_DATE=\"$(VERDATE)\"
-COPTS = -Iinclude $(ADDINC) $(CPU_OPTS) $(TARGET_OPTS) $(REGEX_OPTS) \
- $(SMALL_OPTS) $(VER_OPTS) $(DEFINE)
+# This one can be changed to look for ebtree files in an external directory
+EBTREE_DIR := ebtree
+
+COPTS = -Iinclude -I$(EBTREE_DIR) $(ADDINC) $(CPU_OPTS) $(TARGET_OPTS) \
+ $(REGEX_OPTS) $(SMALL_OPTS) $(VER_OPTS) $(DEFINE)
LIBS = $(LIBS.$(TARGET)) $(LIBS.$(REGEX)) $(ADDLIB)
CFLAGS = -Wall $(COPTS) $(DEBUG)
LDFLAGS = -g
src/session.o src/hdr_idx.o src/ev_select.o src/signal.o \
src/lb_chash.o src/lb_fwlc.o src/lb_fwrr.o src/lb_map.o \
src/ev_poll.o src/ev_kqueue.o \
- src/acl.o src/memory.o src/freq_ctr.o \
- src/ebtree.o src/eb32tree.o
+ src/acl.o src/memory.o src/freq_ctr.o
+
+EBTREE_OBJS = $(EBTREE_DIR)/ebtree.o \
+ $(EBTREE_DIR)/eb32tree.o $(EBTREE_DIR)/eb64tree.o \
+ $(EBTREE_DIR)/ebmbtree.o $(EBTREE_DIR)/ebsttree.o \
+ $(EBTREE_DIR)/ebimtree.o $(EBTREE_DIR)/ebistree.o
all: haproxy
-haproxy: $(OBJS) $(OPT_OBJS)
+haproxy: $(OBJS) $(OPT_OBJS) $(EBTREE_OBJS)
$(LD) $(LDFLAGS) -o $@ $> $(LIBS)
.SUFFIXES: .c.o
$(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
+ rm -f *.[oas] src/*.[oas] ebtree/*.[oas] haproxy test
+ for dir in . src include/* doc ebtree; do rm -f $$dir/*~ $$dir/*.rej $$dir/core; done
rm -f haproxy-$(VERSION).tar.gz haproxy-$(VERSION) nohup.out gmon.out
version:
PCREDIR!= pcre-config --prefix 2>/dev/null || :
#PCREDIR=/usr/local
+# This one can be changed to look for ebtree files in an external directory
+EBTREE_DIR = ebtree
+
# This is for darwin 3.0 and above
COPTS.darwin = -DENABLE_POLL -DENABLE_KQUEUE
LIBS.darwin =
VER_OPTS := -DCONFIG_HAPROXY_VERSION=\"$(VERSION)$(SUBVERS)\" \
-DCONFIG_HAPROXY_DATE=\"$(VERDATE)\"
-COPTS = -Iinclude $(ADDINC) $(CPU_OPTS) $(TARGET_OPTS) $(REGEX_OPTS) \
- $(SMALL_OPTS) $(VER_OPTS) $(DEFINE)
+COPTS = -Iinclude -I$(EBTREE_DIR) $(ADDINC) $(CPU_OPTS) $(TARGET_OPTS) \
+ $(REGEX_OPTS) $(SMALL_OPTS) $(VER_OPTS) $(DEFINE)
LIBS = $(LIBS.$(TARGET)) $(LIBS.$(REGEX)) $(ADDLIB)
CFLAGS = -Wall $(COPTS) $(DEBUG) -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -mmacosx-version-min=10.4
LDFLAGS = -g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -mmacosx-version-min=10.4
src/session.o src/hdr_idx.o src/ev_select.o src/signal.o \
src/lb_chash.o src/lb_fwlc.o src/lb_fwrr.o src/lb_map.o \
src/ev_poll.o \
- src/acl.o src/memory.o src/freq_ctr.o \
- src/ebtree.o src/eb32tree.o
+ src/acl.o src/memory.o src/freq_ctr.o
+
+EBTREE_OBJS = $(EBTREE_DIR)/ebtree.o \
+ $(EBTREE_DIR)/eb32tree.o $(EBTREE_DIR)/eb64tree.o \
+ $(EBTREE_DIR)/ebmbtree.o $(EBTREE_DIR)/ebsttree.o \
+ $(EBTREE_DIR)/ebimtree.o $(EBTREE_DIR)/ebistree.o
all: haproxy
-haproxy: $(OBJS)
- $(LD) $(LDFLAGS) $(OBJS) -o $@
+haproxy: $(OBJS) $(EBTREE_OBJS)
+ $(LD) $(LDFLAGS) $(OBJS) $(EBTREE_OBJS) -o $@
.SUFFIXES: .c.o
$(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
+ rm -f *.[oas] src/*.[oas] ebtree/*.[oas] haproxy test
+ for dir in . src include/* doc ebtree; do rm -f $$dir/*~ $$dir/*.rej $$dir/core; done
rm -f haproxy-$(VERSION).tar.gz haproxy-$(VERSION) nohup.out gmon.out
version:
-INCLUDE = -I../../include
-OPTIMIZE = -O3 -mtune=pentium-m
+EBTREE_DIR = ../../ebtree
+INCLUDE = -I$(EBTREE_DIR)
+OPTIMIZE = -O3 #-mtune=pentium-m
OBJS = halog halog64
halog: halog.c fgets2.c
- $(CC) $(OPTIMIZE) -o $@ $(INCLUDE) ../../src/ebtree.c ../../src/eb32tree.c $^
+ $(CC) $(OPTIMIZE) -o $@ $(INCLUDE) $(EBTREE_DIR)/ebtree.c $(EBTREE_DIR)/eb32tree.c $^
halog64: halog.c fgets2-64.c
- $(CC) $(OPTIMIZE) -o $@ $(INCLUDE) ../../src/ebtree.c ../../src/eb32tree.c $^
+ $(CC) $(OPTIMIZE) -o $@ $(INCLUDE) $(EBTREE_DIR)/ebtree.c $(EBTREE_DIR)/eb32tree.c $^
clean:
rm -vf $(OBJS)
#include <unistd.h>
#include <ctype.h>
-#include <common/eb32tree.h>
+#include <eb32tree.h>
#define ACCEPT_FIELD 6
#define TIME_FIELD 9
#include <sys/types.h>
#include <netinet/in.h>
#include <common/config.h>
-#include <common/eb32tree.h>
+#include <eb32tree.h>
#include <proto/fd.h>
/****** string-specific macros and functions ******/
#include <sys/time.h>
#include <common/config.h>
-#include <common/eb32tree.h>
#include <common/memory.h>
#include <common/mini-clist.h>
#include <common/standard.h>
#include <common/ticks.h>
+#include <eb32tree.h>
#include <types/task.h>
#define _TYPES_LB_CHASH_H
#include <common/config.h>
-#include <common/ebtree.h>
-#include <common/eb32tree.h>
+#include <ebtree.h>
+#include <eb32tree.h>
struct lb_chash {
struct eb_root act; /* weighted chash entries of active servers */
#define _TYPES_LB_FWLC_H
#include <common/config.h>
-#include <common/ebtree.h>
+#include <ebtree.h>
struct lb_fwlc {
struct eb_root act; /* weighted least conns on the active servers */
#define _TYPES_LB_FWRR_H
#include <common/config.h>
-#include <common/ebtree.h>
+#include <ebtree.h>
/* This structure is used to apply fast weighted round robin on a server group */
struct fwrr_group {
#include <sys/un.h>
#include <common/config.h>
-#include <common/eb32tree.h>
#include <common/mini-clist.h>
+#include <eb32tree.h>
#include <types/counters.h>
#include <types/task.h>
#include <common/appsession.h>
#include <common/config.h>
-#include <common/eb32tree.h>
#include <common/mini-clist.h>
#include <common/regex.h>
#include <common/sessionhash.h>
#include <common/tools.h>
+#include <eb32tree.h>
#include <types/acl.h>
#include <types/backend.h>
#include <arpa/inet.h>
#include <common/config.h>
-#include <common/eb32tree.h>
#include <common/mini-clist.h>
+#include <eb32tree.h>
#include <types/buffers.h>
#include <types/counters.h>
#include <sys/time.h>
#include <common/config.h>
-#include <common/eb32tree.h>
#include <common/mini-clist.h>
+#include <eb32tree.h>
/* values for task->state */
#define TASK_SLEEPING 0x00 /* task sleeping */
#include <common/compat.h>
#include <common/config.h>
#include <common/debug.h>
-#include <common/eb32tree.h>
+#include <eb32tree.h>
#include <types/global.h>
#include <types/server.h>
#include <common/compat.h>
#include <common/config.h>
#include <common/debug.h>
-#include <common/eb32tree.h>
+#include <eb32tree.h>
#include <types/global.h>
#include <types/server.h>
#include <common/compat.h>
#include <common/config.h>
#include <common/debug.h>
-#include <common/eb32tree.h>
+#include <eb32tree.h>
#include <types/global.h>
#include <types/server.h>
#include <common/compat.h>
#include <common/config.h>
#include <common/debug.h>
-#include <common/eb32tree.h>
+#include <eb32tree.h>
#include <types/global.h>
#include <types/server.h>
#include <arpa/inet.h>
#include <common/config.h>
-#include <common/eb32tree.h>
#include <common/standard.h>
+#include <eb32tree.h>
#include <proto/log.h>
/* enough to store 10 integers of :
#include <string.h>
#include <common/config.h>
-#include <common/eb32tree.h>
#include <common/memory.h>
#include <common/mini-clist.h>
#include <common/standard.h>
#include <common/time.h>
+#include <eb32tree.h>
#include <proto/proxy.h>
#include <proto/session.h>