]> git.proxmox.com Git - mirror_lxc.git/blame - configure.ac
Add lxc.hook.pre-mount
[mirror_lxc.git] / configure.ac
CommitLineData
5e97c3fc 1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4aa7ac35 4AC_INIT([lxc], [0.8.0])
5e97c3fc 5
f8dafdbb 6AC_CONFIG_SRCDIR([configure.ac])
5e97c3fc 7AC_CONFIG_AUX_DIR([config])
8AM_CONFIG_HEADER([src/config.h])
9AM_INIT_AUTOMAKE([-Wno-portability])
10AC_CANONICAL_HOST
5e97c3fc 11AM_PROG_CC_C_O
12AC_GNU_SOURCE
e90b6974 13AC_CHECK_PROG(SETCAP, setcap, yes, no, $PATH$PATH_SEPARATOR/sbin)
5c8f9bd8 14
be2e4e54
SG
15if test -f /etc/debian_version; then
16 osname="debian"
17fi
18AM_CONDITIONAL([HAVE_DEBIAN], [test x"$osname" == xdebian])
19
1c41ddcb
GK
20AC_ARG_ENABLE([rpath],
21 [AC_HELP_STRING([--disable-rpath], [do not set rpath in executables])],
22 [], [enable_rpath=yes])
23
24AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" = "xyes"])
25
5c8f9bd8
AN
26AC_ARG_ENABLE([doc],
27 [AC_HELP_STRING([--enable-doc], [make mans (require docbook2man installed) [default=auto]])],
28 [], [enable_doc=auto])
29
30if test "x$enable_doc" = "xyes" -o "x$enable_doc" = "xauto"; then
31 AC_CHECK_PROG(have_docbook, [docbook2man], [yes], [no])
32
33 test "x$have_docbook" = "xno" -a "x$enable_doc" = "xyes" && \
34 AC_MSG_ERROR([docbook2man required by man request, but not found])
35fi
36
e767dd55
SH
37AC_ARG_ENABLE([apparmor],
38 [AC_HELP_STRING([--enable-apparmor], [enable apparmor])],
39 [], [enable_apparmor=check])
40
41if test "$enable_apparmor" = "check" ; then
42 AC_CHECK_LIB([apparmor],[aa_change_profile],[enable_apparmor=yes], [enable_apparmor=no])
43fi
44
45AM_CONDITIONAL([ENABLE_APPARMOR], [test "x$enable_apparmor" = "xyes"])
46
e075f5d9
SH
47AM_COND_IF([ENABLE_APPARMOR],
48 [AC_CHECK_HEADER([sys/apparmor.h],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
49 AC_CHECK_LIB([apparmor], [aa_change_profile],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
50 AC_SUBST([APPARMOR_LIBS], [-lapparmor])])
51
e767dd55
SH
52AC_ARG_ENABLE([seccomp],
53 [AC_HELP_STRING([--enable-seccomp], [enable seccomp])],
54 [], [enable_seccomp=check])
55
56if test "$enable_seccomp" = "check" ; then
57 AC_CHECK_LIB([seccomp],[seccomp_init],[enable_seccomp=yes],[enable_seccomp=no])
58fi
59
60AM_CONDITIONAL([ENABLE_SECCOMP], [test "x$enable_seccomp" = "xyes"])
61
8f2c3a70
SH
62AM_COND_IF([ENABLE_SECCOMP],
63 [AC_CHECK_HEADER([seccomp.h],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
64 AC_CHECK_LIB([seccomp], [seccomp_init],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
65 AC_SUBST([SECCOMP_LIBS], [-lseccomp])])
66
5c8f9bd8
AN
67AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$have_docbook" = "xyes"])
68
3fb0a9bb
AN
69AC_ARG_ENABLE([examples],
70 [AC_HELP_STRING([--disable-examples], [do not install configuration examples])],
71 [], [enable_examples=yes])
72
73AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
74
be2e4e54
SG
75AC_ARG_ENABLE([python],
76 [AC_HELP_STRING([--enable-python], [enable python binding])],
77 [enable_python=yes], [enable_python=no])
78
79AM_CONDITIONAL([ENABLE_PYTHON], [test "x$enable_python" = "xyes"])
80
81AM_COND_IF([ENABLE_PYTHON],
82 [AM_PATH_PYTHON([3.2], [], [AC_MSG_ERROR([You must install python3])])
83 AC_CHECK_HEADER([python$PYTHON_VERSION/Python.h],[],[AC_MSG_ERROR([You must install python3-dev])])
84 AC_DEFINE_UNQUOTED([ENABLE_PYTHON], 1, [Python3 is available])])
85
b6345ba1
DL
86AS_AC_EXPAND(PREFIX, $prefix)
87AS_AC_EXPAND(LIBDIR, $libdir)
7ad641d5 88AS_AC_EXPAND(BINDIR, $bindir)
00ad19d4 89AS_AC_EXPAND(LIBEXECDIR, $libexecdir)
b6345ba1 90AS_AC_EXPAND(INCLUDEDIR, $includedir)
7ad641d5 91AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
3eae9733 92AS_AC_EXPAND(DATADIR, $datadir)
7ad641d5 93AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
0f71d073 94AS_AC_EXPAND(DOCDIR, $docdir)
805415fc 95
aef4ebcf
AN
96AC_ARG_WITH([config-path],
97 [AC_HELP_STRING(
98 [--with-config-path=dir],
e892973e 99 [lxc configuration repository path]
1c41ddcb 100 )], [], [with_config_path=['${localstatedir}/lib/lxc']])
aef4ebcf 101
196db713
DL
102AC_ARG_WITH([rootfs-path],
103 [AC_HELP_STRING(
104 [--with-rootfs-path=dir],
105 [lxc rootfs mount point]
1c41ddcb 106 )], [], [with_rootfs_path=['${libdir}/lxc/rootfs']])
196db713 107
aef4ebcf 108AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
d595c68a
DE
109AS_AC_EXPAND(LXCPATH, "${with_config_path}")
110AS_AC_EXPAND(LXCROOTFSMOUNT, "${with_rootfs_path}")
111AS_AC_EXPAND(LXCTEMPLATEDIR, ['${datadir}/lxc/templates'])
d674be08 112
814463cf 113AC_SUBST(LXCINITDIR, ['${libexecdir}'])
881450bb 114
910bb4fa 115AC_CHECK_HEADERS([linux/unistd.h linux/netlink.h linux/genetlink.h],
288063bd 116 [],
910bb4fa 117 AC_MSG_ERROR([Please install the Linux kernel headers.]),
288063bd 118 [#include <sys/socket.h>
90e0a869 119 ])
35f549fe 120
910bb4fa 121AC_CHECK_HEADERS([sys/capability.h], [], AC_MSG_ERROR([Please install the libcap development files.]),
ddceb1f9
DL
122[#include <sys/types.h>
123#include <sys/capability.h>])
0af683cf 124AC_CHECK_LIB(cap,cap_set_proc,caplib=yes,caplib=no)
125AC_MSG_CHECKING([linux capabilities])
126if test "x$caplib" = "xyes" ; then
127 CAP_LIBS="-lcap"
128 AC_MSG_RESULT([$CAP_LIBS])
129else
130 AC_MSG_ERROR([not found])
131fi
132AC_SUBST([CAP_LIBS])
35f549fe 133
656994bb
MH
134# Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
135AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
136
ff218c25 137AC_CHECK_HEADERS([sys/signalfd.h])
138
5e97c3fc 139AC_PROG_GCC_TRADITIONAL
140
141if test "x$GCC" = "xyes"; then
8642237a 142 CFLAGS="$CFLAGS -Wall"
5e97c3fc 143fi
144
145AC_CONFIG_FILES([
288063bd 146 Makefile
b6345ba1 147 lxc.pc
5e97c3fc 148 lxc.spec
288063bd 149 config/Makefile
d823d5b9 150
288063bd 151 doc/Makefile
d823d5b9 152 doc/lxc-create.sgml
153 doc/lxc-destroy.sgml
154 doc/lxc-execute.sgml
155 doc/lxc-start.sgml
396639d4
DL
156 doc/lxc-checkpoint.sgml
157 doc/lxc-restart.sgml
d823d5b9 158 doc/lxc-stop.sgml
b0a33c1e 159 doc/lxc-console.sgml
d823d5b9 160 doc/lxc-freeze.sgml
161 doc/lxc-unfreeze.sgml
162 doc/lxc-monitor.sgml
163 doc/lxc-wait.sgml
164 doc/lxc-ls.sgml
165 doc/lxc-ps.sgml
b0e505c9 166 doc/lxc-cgroup.sgml
e4b3fe58 167 doc/lxc-kill.sgml
49ee6cdc 168 doc/lxc-attach.sgml
8a67a2b2 169 doc/lxc.conf.sgml
8b8b04f8 170 doc/lxc.sgml
10fba81b 171 doc/common_options.sgml
99e4008c 172 doc/see_also.sgml
d823d5b9 173
baf6671f
DL
174 doc/rootfs/Makefile
175
0f71d073
DL
176 doc/examples/Makefile
177 doc/examples/lxc-macvlan.conf
26c39028 178 doc/examples/lxc-vlan.conf
0f71d073
DL
179 doc/examples/lxc-no-netns.conf
180 doc/examples/lxc-empty-netns.conf
181 doc/examples/lxc-phys.conf
182 doc/examples/lxc-veth.conf
c553a9c2 183 doc/examples/lxc-complex.conf
0f71d073 184
c01d62f2 185 templates/Makefile
03d56dff 186 templates/lxc-lenny
c01d62f2 187 templates/lxc-debian
e2b4064f 188 templates/lxc-ubuntu
d1458ac8 189 templates/lxc-ubuntu-cloud
c840b37d 190 templates/lxc-opensuse
c01d62f2
DL
191 templates/lxc-busybox
192 templates/lxc-fedora
262f4e48 193 templates/lxc-altlinux
c01d62f2 194 templates/lxc-sshd
f6267d90 195 templates/lxc-archlinux
c9844b87 196
288063bd 197 src/Makefile
5e97c3fc 198 src/lxc/Makefile
199 src/lxc/lxc-ps
d823d5b9 200 src/lxc/lxc-ls
9d0195cb 201 src/lxc/lxc-netstat
237315ff
DL
202 src/lxc/lxc-checkconfig
203 src/lxc/lxc-setcap
7a82e923 204 src/lxc/lxc-setuid
bcd952a1 205 src/lxc/lxc-version
ab2d32f8 206 src/lxc/lxc-create
be8b5972 207 src/lxc/lxc-clone
72be4f89 208 src/lxc/lxc-shutdown
ab2d32f8 209 src/lxc/lxc-destroy
c9844b87 210
be2e4e54
SG
211 src/python-lxc/Makefile
212
72d0e1cb
SG
213 src/tests/Makefile
214
5e97c3fc 215])
216AC_CONFIG_COMMANDS([default],[[]],[[]])
217AC_OUTPUT
805415fc 218
219if test "x$SETCAP" = "xno"; then
f8dafdbb 220 AC_MSG_NOTICE([
805415fc 221
222Warning:
223--------
224
87476557
FG
225The setcap binary was not found. This means the tools to set the
226privilege for the lxc commands are not available, that's ok, but you
227will need to run these commands as root or install libcap-2.
805415fc 228
229])
230
231else
232
f8dafdbb 233 AC_MSG_NOTICE([
805415fc 234
235Advice:
236-------
237
87476557 238If you wish to have a non root user to use the lxc tools,
237315ff
DL
239you can add the needed capabilities to the tools by invoking
240the 'lxc-setcap' script. To remove the capabilities, use
87476557 241'lxc-setcap -d'.
805415fc 242])
243
244fi