Jan Engelhardt | d31a659 | 2008-02-11 14:11:14 +0100 | [diff] [blame] | 1 | Installation instructions for iptables |
| 2 | ====================================== |
Richard Gooch | 8e3b892 | 2000-04-22 00:57:38 +0000 | [diff] [blame] | 3 | |
Jan Engelhardt | d31a659 | 2008-02-11 14:11:14 +0100 | [diff] [blame] | 4 | iptables uses the well-known configure(autotools) infrastructure. |
Harald Welte | c5a2ce4 | 2001-09-02 14:55:36 +0000 | [diff] [blame] | 5 | |
Jan Engelhardt | d31a659 | 2008-02-11 14:11:14 +0100 | [diff] [blame] | 6 | $ ./configure |
Jan Engelhardt | f82070f | 2008-01-20 13:14:00 +0000 | [diff] [blame] | 7 | $ make |
| 8 | # make install |
Richard Gooch | 8e3b892 | 2000-04-22 00:57:38 +0000 | [diff] [blame] | 9 | |
Jan Engelhardt | f82070f | 2008-01-20 13:14:00 +0000 | [diff] [blame] | 10 | |
Jan Engelhardt | d31a659 | 2008-02-11 14:11:14 +0100 | [diff] [blame] | 11 | Prerequisites |
| 12 | ============= |
Harald Welte | 3efb6ea | 2001-08-06 18:50:21 +0000 | [diff] [blame] | 13 | |
Jan Engelhardt | d31a659 | 2008-02-11 14:11:14 +0100 | [diff] [blame] | 14 | * no kernel-source required |
Harald Welte | 3efb6ea | 2001-08-06 18:50:21 +0000 | [diff] [blame] | 15 | |
Jan Engelhardt | d31a659 | 2008-02-11 14:11:14 +0100 | [diff] [blame] | 16 | * but obviously a compiler, glibc-devel and linux-kernel-headers |
| 17 | (/usr/include/linux) |
Joszef Kadlecsik | 9dd4cb0 | 2004-06-28 08:09:19 +0000 | [diff] [blame] | 18 | |
Jan Engelhardt | d31a659 | 2008-02-11 14:11:14 +0100 | [diff] [blame] | 19 | |
| 20 | Configuring 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 |
| 34 | defaults to ${prefix}/libexec/xtables. |
| 35 | |
| 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 | |
| 44 | --enable-libipq |
| 45 | |
| 46 | This option causes libipq to be installed into ${libdir} and |
| 47 | ${includedir}. |
| 48 | |
| 49 | --enable-static |
| 50 | |
| 51 | Enable building single standalone multipurpose binaries, |
| 52 | (iptables-static and ip6tables-static), which contain every |
| 53 | extension compiled-in (and does not support additional |
| 54 | extensions). |
| 55 | |
| 56 | --with-ksource= |
| 57 | |
| 58 | Xtables does not depend on kernel headers anymore, but you can |
| 59 | optionally specify a search path to include anyway. This is |
| 60 | probably only useful for development. |
| 61 | |
| 62 | If you want to enable debugging, use |
| 63 | |
| 64 | ./configure CFLAGS="-ggdb3 -O0" |
| 65 | |
| 66 | (-O0 is used to turn off instruction reordering, which makes debugging |
| 67 | much easier.) |
| 68 | |
| 69 | |
| 70 | Other notes |
| 71 | =========== |
| 72 | |
| 73 | The make process will automatically build multipurpose binaries. |
| 74 | These have the core (iptables), -save, -restore and -xml code |
| 75 | compiled into one binary, but extensions remain as modules. |
| 76 | |
| 77 | If you want to build a statically linked version of the iptables binary, |
| 78 | without the need for loading the plugins at runtime (e.g. for an |
| 79 | embedded device or router-on-a-disk), you can use the --enable-static |
| 80 | configure flag. |