Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 92 lines (69 sloc) 4.045 kb
7834533 * added a README to help about the build process
willy tarreau authored
1 -------------------
2 H A - P r o x y
3 How to build it
4 -------------------
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
5 version 1.3.15
7834533 * added a README to help about the build process
willy tarreau authored
6 willy tarreau
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
7 2008/05/25
7834533 * added a README to help about the build process
willy tarreau authored
8
9
10 To build haproxy, you will need :
11 - GNU make. Neither Solaris nor OpenBSD's make work with this makefile.
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
12 However, specific Makefiles for BSD and OSX are provided.
13 - GCC between 2.91 and 4.3. Others may work, but not tested.
7834533 * added a README to help about the build process
willy tarreau authored
14 - GNU ld
15
16 Also, you might want to build with libpcre support, which will provide a very
17 efficient regex implementation and will also fix some badness on Solaris's one.
18
19 To build haproxy, you have to choose your target OS amongst the following ones
20 and assign it to the TARGET variable :
21
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
22 - linux22 for Linux 2.2
23 - linux24 for Linux 2.4 and above (default)
24 - linux24e for Linux 2.4 with support for a working epoll (> 0.21)
25 - linux26 for Linux 2.6 and above
26 - solaris for Solaris 8 or 10 (others untested)
27 - freebsd for FreeBSD 5 to 6.2 (others untested)
28 - openbsd for OpenBSD 3.1 to 3.7 (others untested)
29 - generic for any other OS.
30 - custom to manually adjust every setting
7834533 * added a README to help about the build process
willy tarreau authored
31
32 You may also choose your CPU to benefit from some optimizations. This is
33 particularly important on UltraSparc machines. For this, you can assign
34 one of the following choices to the CPU variable :
35
36 - i686 for intel PentiumPro, Pentium 2 and above, AMD Athlon
37 - i586 for intel Pentium, AMD K6, VIA C3.
38 - ultrasparc : Sun UltraSparc I/II/III/IV processor
39 - generic : any other processor or no specific optimization. (default)
40
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
41 Alternatively, you may just set the CPU_CFLAGS value to the optimal GCC options
42 for your platform.
43
ef7341d [BUILD] make it possible to pass alternative arch at build time
Willy Tarreau authored
44 You may want to build specific target binaries which do not match your native
45 compiler's target. This is particularly true on 64-bit systems when you want
46 to build a 32-bit binary. Use the ARCH variable for this purpose. Right now
47 it only knows about a few x86 variants (i386,i486,i586,i686,x86_64) and sets
48 -m32/-m64 as well as -march=<arch> accordingly.
49
7834533 * added a README to help about the build process
willy tarreau authored
50 If your system supports PCRE (Perl Compatible Regular Expressions), then you
51 really should build with libpcre which is between 2 and 10 times faster than
52 other libc implementations. Regex are used for header processing (deletion,
53 rewriting, allow, deny). The only inconvenient of libpcre is that it is not
54 yet widely spread, so if you build for other systems, you might get into
55 trouble if they don't have the dynamic library. In this situation, you should
56 statically link libpcre into haproxy so that it will not be necessary to
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
57 install it on target systems. Available build options for PCRE are :
7834533 * added a README to help about the build process
willy tarreau authored
58
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
59 - USE_PCRE=1 to use libpcre, in whatever form is available on your system
7834533 * added a README to help about the build process
willy tarreau authored
60 (shared or static)
61
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
62 - USE_STATIC_PCRE=1 to use a static version of libpcre even if the dynamic
63 one is available. This will enhance portability.
64
65 - with no option, use your OS libc's standard regex implemntation (default).
66 Warning! group references on Solaris seem broken. Use static-pcre whenever
67 possible.
7834533 * added a README to help about the build process
willy tarreau authored
68
69 By default, the DEBUG variable is set to '-g' to enable debug symbols. It is
70 not wise to disable it on uncommon systems, because it's often the only way to
71 get a complete core when you need one. Otherwise, you can set DEBUG to '-s' to
72 strip the binary.
73
74 For example, I use this to build for Solaris 8 :
75
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
76 $ make TARGET=solaris CPU=ultrasparc USE_STATIC_PCRE=1
7834533 * added a README to help about the build process
willy tarreau authored
77
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
78 And I build it this way on OpenBSD or FreeBSD :
d38e72d Separated OpenBSD build from the main Makefile into a new one.
willy tarreau authored
79
80 $ make -f Makefile.bsd REGEX=pcre DEBUG= COPTS.generic="-Os -fomit-frame-pointer -mgnu"
81
ef7341d [BUILD] make it possible to pass alternative arch at build time
Willy Tarreau authored
82 In order to build a 32-bit binary on an x86_64 Linux system :
83
84 $ make TARGET=linux26 ARCH=i386
85
7834533 * added a README to help about the build process
willy tarreau authored
86 If you need to pass other defines, includes, libraries, etc... then please
87 check the Makefile to see which ones will be available in your case, and
83b30c1 [DOC] update the README file with new build options
Willy Tarreau authored
88 use the USE_* variables in the GNU Makefile, or ADDINC, ADDLIB, and DEFINE
89 variables in the BSD makefiles.
7834533 * added a README to help about the build process
willy tarreau authored
90
91 -- end
Something went wrong with that request. Please try again.