blob: d62b428c6e29572e663f0e02394c465be88a7fb5 [file] [log] [blame]
Jan Engelhardtd31a6592008-02-11 14:11:14 +01001Installation instructions for iptables
2======================================
Richard Gooch8e3b8922000-04-22 00:57:38 +00003
Jan Engelhardtd31a6592008-02-11 14:11:14 +01004iptables uses the well-known configure(autotools) infrastructure.
Harald Weltec5a2ce42001-09-02 14:55:36 +00005
Jan Engelhardtd31a6592008-02-11 14:11:14 +01006 $ ./configure
Jan Engelhardtf82070f2008-01-20 13:14:00 +00007 $ make
8 # make install
Richard Gooch8e3b8922000-04-22 00:57:38 +00009
Jan Engelhardtf82070f2008-01-20 13:14:00 +000010
Jan Engelhardtd31a6592008-02-11 14:11:14 +010011Prerequisites
12=============
Harald Welte3efb6ea2001-08-06 18:50:21 +000013
Jan Engelhardtd31a6592008-02-11 14:11:14 +010014 * no kernel-source required
Harald Welte3efb6ea2001-08-06 18:50:21 +000015
Jan Engelhardtd31a6592008-02-11 14:11:14 +010016 * but obviously a compiler, glibc-devel and linux-kernel-headers
17 (/usr/include/linux)
Joszef Kadlecsik9dd4cb02004-06-28 08:09:19 +000018
Jan Engelhardtd31a6592008-02-11 14:11:14 +010019
20Configuring and compiling
21=========================
22
23./configure [options]
24
25--prefix=
26
27 The prefix to put all installed files under. It defaults to
28 /usr/local, so the binaries will go into /usr/local/bin, sbin,
29 manpages into /usr/local/share/man, etc.
30
31--with-xtlibdir=
32
33 The path to where Xtables extensions should be installed to. It
Jan Engelhardt411a4e52011-07-04 12:44:43 +020034 defaults to ${libdir}/xtables.
Jan Engelhardtd31a6592008-02-11 14:11:14 +010035
36--enable-devel (or --disable-devel)
37
38 This option causes development files to be installed to
39 ${includedir}, which is needed for building additional packages,
40 such as Xtables-addons or other 3rd-party extensions.
41
42 It is enabled by default.
43
Jan Engelhardtb79ec692009-07-23 17:41:21 +020044--enable-static
45
46 Produce additional binaries, iptables-static/ip6tables-static,
47 which have all shipped extensions compiled in.
48
49--disable-shared
50
51 Produce binaries that have dynamic loading of extensions disabled.
52 This implies --enable-static.
53 (See some details below.)
54
Jan Engelhardtd31a6592008-02-11 14:11:14 +010055--enable-libipq
56
57 This option causes libipq to be installed into ${libdir} and
58 ${includedir}.
59
Jan Engelhardtd31a6592008-02-11 14:11:14 +010060--with-ksource=
61
62 Xtables does not depend on kernel headers anymore, but you can
63 optionally specify a search path to include anyway. This is
64 probably only useful for development.
65
66If you want to enable debugging, use
67
68 ./configure CFLAGS="-ggdb3 -O0"
69
70(-O0 is used to turn off instruction reordering, which makes debugging
71much easier.)
72
Alexey Perevalov7c7bf4c2013-07-04 11:26:17 +040073To show debug traces you can add -DDEBUG to CFLAGS option
74
Jan Engelhardtd31a6592008-02-11 14:11:14 +010075
76Other notes
77===========
78
79The make process will automatically build multipurpose binaries.
80These have the core (iptables), -save, -restore and -xml code
81compiled into one binary, but extensions remain as modules.
82
Jan Engelhardtb79ec692009-07-23 17:41:21 +020083
84Static and shared
85=================
86
87Basically there are three configuration modes defined:
88
89 --disable-static --enable-shared (this is the default)
90
91 Build a binary that relies upon dynamic loading of extensions.
92
93 --enable-static --enable-shared
94
95 Build a binary that has the shipped extensions built-in, but
96 is still capable of loading additional extensions.
97
98 --enable-static --disable-shared
99
100 Shipped extensions are built-in, and dynamic loading is
101 deactivated.