From: Willy Tarreau Date: Sun, 25 Mar 2007 14:55:56 +0000 (+0200) Subject: [BUILD] makefile for MacOS 10.4 / Darwin X-Git-Tag: v1.3.8~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cec2e7ad1c96b0eae1f7d291847718e3b298b2dc;p=thirdparty%2Fhaproxy.git [BUILD] makefile for MacOS 10.4 / Darwin Contribution from Dan Zinngrabe : Here is a Makefile based on that for BSD that builds HAProxy 1.3.7 on MacOS 10.4 and Darwin. I haven't tested it extensively yet, but it does seem to work so far. --- diff --git a/Makefile.osx b/Makefile.osx new file mode 100644 index 0000000000..497c671dd3 --- /dev/null +++ b/Makefile.osx @@ -0,0 +1,105 @@ +# This makefile is dedicated to darwin (and possibly other BSDs) +# You should use it this way : +# make TARGET=os CPU=cpu + +VERSION := 1.3.7 + +# Select target OS. TARGET must match a system for which COPTS and LIBS are +# correctly defined below. +TARGET = generic + +# pass CPU= 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 + +# 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 darwin 3.0 and above +COPTS.darwin = -DENABLE_POLL +LIBS.darwin = + +# 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 +# - use -DTPROXY to compile with transparent proxy support. +DEFINE = -DTPROXY + +# global options +TARGET_OPTS=$(COPTS.$(TARGET)) +REGEX_OPTS=$(COPTS.$(REGEX)) +CPU_OPTS=$(COPTS.$(CPU)) + +COPTS=-Iinclude $(ADDINC) $(CPU_OPTS) $(TARGET_OPTS) $(REGEX_OPTS) $(SMALL_OPTS) $(DEFINE) +LIBS=$(LIBS.$(TARGET)) $(LIBS.$(REGEX)) $(ADDLIB) + +CFLAGS = -Wall $(COPTS) $(DEBUG) -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 +LDFLAGS = -g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 + +OBJS = src/haproxy.o src/list.o src/chtbl.o src/hashpjw.o src/base64.o \ + src/uri_auth.o src/standard.o src/buffers.o src/log.o src/task.o \ + src/time.o src/fd.o src/regex.o src/cfgparse.o src/server.o \ + src/checks.o src/queue.o src/capture.o src/client.o src/proxy.o \ + src/proto_http.o src/stream_sock.o src/appsession.o src/backend.o \ + src/session.o src/hdr_idx.o src/rbtree.o + +all: haproxy + +haproxy: $(OBJS) + $(LD) $(LDFLAGS) $(OBJS) -o $@ + +.SUFFIXES: .c.o + +.c.o: + $(CC) $(CFLAGS) -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 haproxy-$(VERSION).tar.gz haproxy-$(VERSION) nohup.out gmon.out