* released 1.1.23
* fixed a stupid bug introduced in 1.1.22 which caused second and subsequent
  'default' sections to keep previous parameters, and not initialize logs
  correctly.
* fixed a second stupid bug introduced in 1.1.22 which caused configurations
  relying on 'dispatch' mode to segfault at the first connection.
* 'option httpchk' now supports method, HTTP version and a few headers.
* now, 'option httpchk', 'cookie' and 'capture' can be specified in
  'defaults' section
* a fresh new english documentation
* large Makefile cleanup for increased portability
* new build script 'build.cfg' for Formilux-0.1.8
* new startup script 'init.haproxy.flx0' for Formilux-0.1.8
diff --git a/Makefile b/Makefile
index 45fcad5..43e4493 100644
--- a/Makefile
+++ b/Makefile
@@ -1,53 +1,72 @@
+# This makefile supports different OS and CPU setups.
+# You should use it this way :
+#   make TARGET=os CPU=cpu
+
 # 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
+# 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.
 REGEX=libc
 #REGEX=pcre
 
+# tools options
+CC = gcc
+LD = gcc
+
 # This is the directory hosting include/pcre.h and lib/libpcre.* when REGEX=pcre
 PCREDIR	:= $(shell pcre-config --prefix 2>/dev/null || :)
 #PCREDIR=/usr/local
 
 # This is for Linux 2.4 with netfilter
-COPTS.linux24 = -O2 -DNETFILTER
+COPTS.linux24 = -DNETFILTER
 LIBS.linux24 =
 
 # This is for Linux 2.2
-COPTS.linux22 = -O2 -DUSE_GETSOCKNAME
+COPTS.linux22 = -DUSE_GETSOCKNAME
 LIBS.linux22 =
 
 # This is for Solaris 8
-COPTS.solaris = -O2 -fomit-frame-pointer -DSOLARIS
+COPTS.solaris = -fomit-frame-pointer -DSOLARIS
 LIBS.solaris = -lnsl -lsocket
 
-# This is for Solaris 8 on UltraSparc2 processor
-COPTS.solarisv9 = -O6 -mcpu=v9 -mtune=ultrasparc -fomit-frame-pointer -DSOLARIS
-LIBS.solarisv9 = -lnsl -lsocket
-
 # This is for OpenBSD 3.0
-COPTS.openbsd = -O2
+COPTS.openbsd =
 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.libs=
+LIBS.libc=
 
+# options for libpcre
 COPTS.pcre=-DUSE_PCRE -I$(PCREDIR)/include
 LIBS.pcre=-L$(PCREDIR)/lib -lpcreposix -lpcre
 
+# you can enable debug arguments with "DEBUG=-g" or disable them with "DEBUG="
 #DEBUG =
 DEBUG = -g
 
-COPTS=$(COPTS.$(TARGET)) $(COPTS.$(REGEX))
+# global options
+TARGET_OPTS=$(COPTS.$(TARGET))
+REGEX_OPTS=$(COPTS.$(REGEX))
+CPU_OPTS=$(COPTS.$(CPU))
+
+COPTS=$(CPU_OPTS) $(TARGET_OPTS) $(REGEX_OPTS)
 LIBS=$(LIBS.$(TARGET)) $(LIBS.$(REGEX))
 
 # - use -DSTATTIME=0 to disable statistics, else specify an interval in