blob: 49414596a0c1d27e75eb0087941d929ddf91ce0e [file] [log] [blame]
willy tarreau78345332005-12-18 01:33:16 +01001 -------------------
2 H A - P r o x y
3 How to build it
4 -------------------
5 version 1.2.7
6 willy tarreau
7 2005/10/25
8
9
10To build haproxy, you will need :
11 - GNU make. Neither Solaris nor OpenBSD's make work with this makefile.
12 - GCC between 2.91 and 3.4. Others may work, but not tested.
13 - GNU ld
14
15Also, you might want to build with libpcre support, which will provide a very
16efficient regex implementation and will also fix some badness on Solaris's one.
17
18To build haproxy, you have to choose your target OS amongst the following ones
19and assign it to the TARGET variable :
20
21 - linux24 for Linux 2.4 and above (default)
22 - linux24e for Linux 2.4 with support for epoll
23 - linux26 for Linux 2.6 and above
24 - linux22 for Linux 2.2
25 - solaris for Solaris 8 or 10 (others untested)
26 - openbsd for OpenBSD 3.1 to 3.7 (others untested)
27 - generic for any other OS.
28
29You may also choose your CPU to benefit from some optimizations. This is
30particularly important on UltraSparc machines. For this, you can assign
31one of the following choices to the CPU variable :
32
33 - i686 for intel PentiumPro, Pentium 2 and above, AMD Athlon
34 - i586 for intel Pentium, AMD K6, VIA C3.
35 - ultrasparc : Sun UltraSparc I/II/III/IV processor
36 - generic : any other processor or no specific optimization. (default)
37
38If your system supports PCRE (Perl Compatible Regular Expressions), then you
39really should build with libpcre which is between 2 and 10 times faster than
40other libc implementations. Regex are used for header processing (deletion,
41rewriting, allow, deny). The only inconvenient of libpcre is that it is not
42yet widely spread, so if you build for other systems, you might get into
43trouble if they don't have the dynamic library. In this situation, you should
44statically link libpcre into haproxy so that it will not be necessary to
45install it on target systems. Available options for the REGEX variable are :
46
47 - libc to use your OS libc's standard regex implemntation (default).
48 Warning! group references on Solaris seem broken. Use static-pcre whenever
49 possible.
50
51 - pcre to use libpcre, in whatever form it is available on your system
52 (shared or static)
53
54 - static-pcre to use a static version of libpcre even if the dynamic one is
55 available. This will enhance portability.
56
57By default, the DEBUG variable is set to '-g' to enable debug symbols. It is
58not wise to disable it on uncommon systems, because it's often the only way to
59get a complete core when you need one. Otherwise, you can set DEBUG to '-s' to
60strip the binary.
61
62For example, I use this to build for Solaris 8 :
63
64 $ make TARGET=solaris CPU=ultrasparc REGEX=static-pcre
65
willy tarreaud38e72d2006-03-19 20:56:52 +010066And I build it this way on OpenBSD :
67
68 $ make -f Makefile.bsd REGEX=pcre DEBUG= COPTS.generic="-Os -fomit-frame-pointer -mgnu"
69
willy tarreau78345332005-12-18 01:33:16 +010070If you need to pass other defines, includes, libraries, etc... then please
71check the Makefile to see which ones will be available in your case, and
72use the ADDINC, ADDLIB, and DEFINE variables for this.
73
74-- end