# Select target OS. TARGET must match a system for which COPTS and LIBS are
# correctly defined below.
# You can set it on make's command line. eg: make TARGET=solaris
TARGET = linux24
#TARGET = linux22
#TARGET = solaris
#TARGET = solarisv9
#TARGET = openbsd

CC = gcc
LD = gcc

# This is for Linux 2.4 with netfilter
COPTS.linux24 = -O2 -DNETFILTER
LIBS.linux24 =

# This is for Linux 2.2
COPTS.linux22 = -O2 -DUSE_GETSOCKNAME
LIBS.linux22 =

# This is for Solaris 8
COPTS.solaris = -O2 -fomit-frame-pointer -DSOLARIS
LIBS.solaris = -lnsl -lsocket

# This is for Solaris 8 on UltraSparc2 processor
COPTS.solarisv9 = -O6 -mcpu=v9 -fomit-frame-pointer -DSOLARIS
LIBS.solarisv9 = -lnsl -lsocket

# This is for OpenBSD 3.0
COPTS.openbsd = -O2
LIBS.openbsd =

#DEBUG =
DEBUG = -g

COPTS=$(COPTS.$(TARGET))
LIBS=$(LIBS.$(TARGET))

# - 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
LDFLAGS = -g

all: haproxy

haproxy: haproxy.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)

%.o:	%.c
	$(CC) $(CFLAGS) -c -o $@ $<

clean:
	rm -f *.[oas] *~ core haproxy test nohup.out gmon.out

