Separated OpenBSD build from the main Makefile into a new one.

This commit is contained in:
willy tarreau 2006-03-19 20:56:52 +01:00
parent fd6e535154
commit d38e72d567
3 changed files with 113 additions and 17 deletions

View File

@ -9,7 +9,6 @@ TARGET = linux24
#TARGET = linux24e
#TARGET = linux22
#TARGET = solaris
#TARGET = openbsd
# pass CPU=<cpu_name> to make to optimize for a particular CPU
CPU = generic
@ -54,10 +53,6 @@ LIBS.linux22 =
COPTS.solaris = -fomit-frame-pointer -DENABLE_POLL -DFD_SETSIZE=65536
LIBS.solaris = -lnsl -lsocket
# This is for OpenBSD 3.0
COPTS.openbsd = -DENABLE_POLL
LIBS.openbsd =
# CPU dependant optimizations
COPTS.generic = -O2
COPTS.i586 = -O2 -march=i586
@ -77,14 +72,15 @@ 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
#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.
#SMALL_OPTS = -DBUFSIZE=8100 -DMAXREWRITE=1000 -DSYSTEM_MAXCONN=1024
# will avoid the additionnal paramters to overflow a page. 8030 bytes is
# exactly 5.5 TCP segments of 1460 bytes.
#SMALL_OPTS = -DBUFSIZE=8030 -DMAXREWRITE=1030 -DSYSTEM_MAXCONN=1024
SMALL_OPTS =
# redefine this if you want to add some special PATH to include/libs
@ -93,7 +89,10 @@ ADDLIB =
# set some defines when needed.
# Known ones are -DENABLE_POLL, -DENABLE_EPOLL, and -DUSE_MY_EPOLL
DEFINE =
# - use -DSTATTIME=0 to disable statistics, else specify an interval in
# milliseconds.
# - use -DTPROXY to compile with transparent proxy support.
DEFINE = -DSTATTIME=0 -DTPROXY
# global options
TARGET_OPTS=$(COPTS.$(TARGET))
@ -103,18 +102,11 @@ CPU_OPTS=$(COPTS.$(CPU))
COPTS=-I. $(ADDINC) $(CPU_OPTS) $(TARGET_OPTS) $(REGEX_OPTS) $(SMALL_OPTS) $(DEFINE)
LIBS=$(LIBS.$(TARGET)) $(LIBS.$(REGEX)) $(ADDLIB)
# - use -DSTATTIME=0 to disable statistics, else specify an interval in
# milliseconds.
# - use -DTPROXY to compile with transparent proxy support.
CFLAGS = -Wall $(COPTS) $(DEBUG) -DSTATTIME=0 -DTPROXY
CFLAGS = -Wall $(COPTS) $(DEBUG)
LDFLAGS = -g
all: haproxy
# on OpenBSD, you have to do it this way :
haproxy.bsd: src/list.o src/chtbl.o src/hashpjw.o haproxy.o
$(LD) $(LDFLAGS) -o $@ $> $(LIBS)
haproxy: src/list.o src/chtbl.o src/hashpjw.o haproxy.o
$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)

100
Makefile.bsd Normal file
View File

@ -0,0 +1,100 @@
# This makefile is dedicated to OpenBSD (and possibly other BSDs)
# 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 = 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
PCREDIR=/usr/local
# This is for OpenBSD 3.0
COPTS.openbsd = -DENABLE_POLL
LIBS.openbsd =
# CPU dependant optimizations
COPTS.generic = -O2
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 =
# set some defines when needed.
# Known ones are -DENABLE_POLL, -DENABLE_EPOLL, and -DUSE_MY_EPOLL
# - use -DSTATTIME=0 to disable statistics, else specify an interval in
# milliseconds.
# - use -DTPROXY to compile with transparent proxy support.
DEFINE = -DSTATTIME=0 -DTPROXY
# global options
TARGET_OPTS=$(COPTS.$(TARGET))
REGEX_OPTS=$(COPTS.$(REGEX))
CPU_OPTS=$(COPTS.$(CPU))
COPTS=-I. $(ADDINC) $(CPU_OPTS) $(TARGET_OPTS) $(REGEX_OPTS) $(SMALL_OPTS) $(DEFINE)
LIBS=$(LIBS.$(TARGET)) $(LIBS.$(REGEX)) $(ADDLIB)
CFLAGS = -Wall $(COPTS) $(DEBUG)
LDFLAGS = -g
all: haproxy
haproxy: src/list.o src/chtbl.o src/hashpjw.o haproxy.o
$(LD) $(LDFLAGS) -o $@ $> $(LIBS)
src/list.o: src/list.c
$(CC) $(CFLAGS) -c -o $@ $<
src/chtbl.o: src/chtbl.c
$(CC) $(CFLAGS) -c -o $@ $<
src/hashpjw.o: src/hashpjw.c
$(CC) $(CFLAGS) -c -o $@ $<
haproxy.o: haproxy.c
$(CC) $(CFLAGS) -c -o $@ $<
clean:
rm -f *.[oas] *~ *.rej core haproxy test nohup.out gmon.out src/*.[oas]

4
README
View File

@ -63,6 +63,10 @@ For example, I use this to build for Solaris 8 :
$ make TARGET=solaris CPU=ultrasparc REGEX=static-pcre
And I build it this way on OpenBSD :
$ make -f Makefile.bsd REGEX=pcre DEBUG= COPTS.generic="-Os -fomit-frame-pointer -mgnu"
If you need to pass other defines, includes, libraries, etc... then please
check the Makefile to see which ones will be available in your case, and
use the ADDINC, ADDLIB, and DEFINE variables for this.