mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-17 08:54:41 +00:00
01193d6efb
Commits98634f0c7b
,ed66c297c2
andd5f624dde7
updated the main makefile with new objects src/hash.o, src/pattern.o and src/map.o, but missed to update Makefile.bsd and Makefile.osx. This will fix some of the build failures reported by Jorge Severino under OpenBSD.
154 lines
5.1 KiB
Makefile
154 lines
5.1 KiB
Makefile
# 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
|
|
|
|
# Select target OS. TARGET must match a system for which COPTS and LIBS are
|
|
# correctly defined below.
|
|
TARGET = openbsd
|
|
|
|
# pass CPU=<cpu_name> to make to optimize for a particular CPU
|
|
CPU = generic
|
|
#CPU = native
|
|
#CPU = i586
|
|
#CPU = i686
|
|
#CPU = ultrasparc
|
|
|
|
# By default, we use libc's regex. WARNING! On Solaris 8/Sparc, group
|
|
# references seem broken using libc ! Use pcre instead.
|
|
REGEX=libc
|
|
#REGEX=pcre
|
|
#REGEX=static-pcre
|
|
|
|
# tools options
|
|
CC = gcc
|
|
LD = gcc
|
|
|
|
# This is the directory hosting include/pcre.h and lib/libpcre.* when REGEX=pcre
|
|
PCREDIR!= pcre-config --prefix 2>/dev/null || :
|
|
#PCREDIR=/usr/local
|
|
|
|
# This is for OpenBSD 3.0 and above
|
|
COPTS.openbsd = -DENABLE_POLL -DENABLE_KQUEUE
|
|
LIBS.openbsd =
|
|
|
|
# CPU dependant optimizations
|
|
COPTS.generic = -O2
|
|
COPTS.native = -O2 -march=native
|
|
COPTS.i586 = -O2 -march=i586
|
|
COPTS.i686 = -O2 -march=i686
|
|
COPTS.ultrasparc = -O6 -mcpu=v9 -mtune=ultrasparc
|
|
|
|
# options for standard regex library
|
|
COPTS.libc=
|
|
LIBS.libc=
|
|
|
|
# options for libpcre
|
|
COPTS.pcre=-DUSE_PCRE -I$(PCREDIR)/include
|
|
LIBS.pcre=-L$(PCREDIR)/lib -lpcreposix -lpcre
|
|
|
|
# options for static libpcre
|
|
COPTS.static-pcre=-DUSE_PCRE -I$(PCREDIR)/include
|
|
LIBS.static-pcre=-L$(PCREDIR)/lib -Wl,-Bstatic -lpcreposix -lpcre -Wl,-Bdynamic
|
|
|
|
# you can enable debug arguments with "DEBUG=-g" or disable them with "DEBUG="
|
|
#DEBUG = -g -DDEBUG_MEMORY -DDEBUG_FULL
|
|
DEBUG = -g
|
|
|
|
# if small memory footprint is required, you can reduce the buffer size. There
|
|
# are 2 buffers per concurrent session, so 16 kB buffers will eat 32 MB memory
|
|
# with 1000 concurrent sessions. Putting it slightly lower than a page size
|
|
# will avoid the additionnal paramters to overflow a page. 8030 bytes is
|
|
# exactly 5.5 TCP segments of 1460 bytes.
|
|
#SMALL_OPTS =
|
|
SMALL_OPTS = -DBUFSIZE=8030 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=1024
|
|
|
|
# redefine this if you want to add some special PATH to include/libs
|
|
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.
|
|
# - use -DUSE_GETADDRINFO to use of getaddrinfo() to resolve IPv6 host names
|
|
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))
|
|
CPU_OPTS=$(COPTS.$(CPU))
|
|
SPEC_OPTS=-fno-strict-aliasing
|
|
|
|
VERSION != cat VERSION 2>/dev/null || touch VERSION
|
|
SUBVERS != cat SUBVERS 2>/dev/null || touch SUBVERS
|
|
VERDATE != cat VERDATE 2>/dev/null || touch VERDATE
|
|
|
|
VER_OPTS := -DCONFIG_HAPROXY_VERSION=\"$(VERSION)$(SUBVERS)\" \
|
|
-DCONFIG_HAPROXY_DATE=\"$(VERDATE)\"
|
|
|
|
# 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) \
|
|
$(SPEC_OPTS) $(REGEX_OPTS) $(SMALL_OPTS) $(VER_OPTS) $(DEFINE)
|
|
LIBS = $(LIBS.$(TARGET)) $(LIBS.$(REGEX)) $(ADDLIB)
|
|
CFLAGS = -Wall $(COPTS) $(DEBUG)
|
|
LDFLAGS = -g
|
|
|
|
OBJS = src/haproxy.o src/sessionhash.o src/base64.o src/protocol.o \
|
|
src/uri_auth.o src/standard.o src/buffer.o src/log.o src/task.o \
|
|
src/chunk.o src/channel.o src/listener.o \
|
|
src/time.o src/fd.o src/pipe.o src/regex.o src/cfgparse.o src/server.o \
|
|
src/checks.o src/queue.o src/frontend.o src/proxy.o src/proto_uxst.o \
|
|
src/proto_http.o src/raw_sock.o src/appsession.o src/backend.o \
|
|
src/peers.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/lb_chash.o src/lb_fwlc.o src/lb_fwrr.o src/lb_map.o src/lb_fas.o \
|
|
src/ev_poll.o src/ev_kqueue.o src/connection.o \
|
|
src/arg.o src/acl.o src/memory.o src/freq_ctr.o src/payload.o \
|
|
src/auth.o src/stick_table.o src/sample.o src/compression.o \
|
|
src/hash.o src/pattern.o src/map.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) $(EBTREE_OBJS)
|
|
$(LD) $(LDFLAGS) -o $@ $> $(LIBS)
|
|
|
|
.SUFFIXES: .c.o
|
|
|
|
.c.o:
|
|
$(CC) $(CFLAGS) -c -o $@ $>
|
|
|
|
src/haproxy.o: src/haproxy.c
|
|
$(CC) $(CFLAGS) -DBUILD_TARGET='"$(TARGET)"' -DBUILD_CC='"$(CC)"' \
|
|
-DBUILD_CPU='"$(CPU)"' -DBUILD_REGEX='"$(REGEX)"' \
|
|
-DBUILD_OPTS='"$(COPTS)"' -c -o $@ $>
|
|
|
|
src/dlmalloc.o: $(DLMALLOC_SRC)
|
|
$(CC) $(CFLAGS) -DDEFAULT_MMAP_THRESHOLD=$(DLMALLOC_THRES) -c -o $@ $>
|
|
|
|
clean:
|
|
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:
|
|
@echo "VERSION: $(VERSION)"
|
|
@echo "SUBVERS: $(SUBVERS)"
|
|
@echo "VERDATE: $(VERDATE)"
|