]> git.proxmox.com Git - mirror_lxc.git/blob - configure.ac
Fix previous commit, removing hardcoded /var/lib/lxc from lxc-start-ephemeral
[mirror_lxc.git] / configure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_INIT([lxc], [0.8.0])
5
6 AC_CONFIG_SRCDIR([configure.ac])
7 AC_CONFIG_AUX_DIR([config])
8 AM_CONFIG_HEADER([src/config.h])
9 AM_INIT_AUTOMAKE([-Wno-portability])
10 AC_CANONICAL_HOST
11 AM_PROG_CC_C_O
12 AC_GNU_SOURCE
13 AC_CHECK_PROG(SETCAP, setcap, yes, no, $PATH$PATH_SEPARATOR/sbin)
14
15 if test -f /etc/debian_version; then
16 osname="debian"
17 fi
18 AM_CONDITIONAL([HAVE_DEBIAN], [test x"$osname" == xdebian])
19
20 AC_ARG_ENABLE([rpath],
21 [AC_HELP_STRING([--disable-rpath], [do not set rpath in executables])],
22 [], [enable_rpath=yes])
23
24 AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" = "xyes"])
25
26 AC_ARG_ENABLE([doc],
27 [AC_HELP_STRING([--enable-doc], [make mans (require docbook2man installed) [default=auto]])],
28 [], [enable_doc=auto])
29
30 if 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])
35 fi
36
37 AC_ARG_ENABLE([apparmor],
38 [AC_HELP_STRING([--enable-apparmor], [enable apparmor])],
39 [], [enable_apparmor=check])
40
41 if test "$enable_apparmor" = "check" ; then
42 AC_CHECK_LIB([apparmor],[aa_change_profile],[enable_apparmor=yes], [enable_apparmor=no])
43 fi
44
45 AM_CONDITIONAL([ENABLE_APPARMOR], [test "x$enable_apparmor" = "xyes"])
46
47 AM_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
52 AC_ARG_ENABLE([seccomp],
53 [AC_HELP_STRING([--enable-seccomp], [enable seccomp])],
54 [], [enable_seccomp=check])
55
56 if test "$enable_seccomp" = "check" ; then
57 AC_CHECK_LIB([seccomp],[seccomp_init],[enable_seccomp=yes],[enable_seccomp=no])
58 fi
59
60 AM_CONDITIONAL([ENABLE_SECCOMP], [test "x$enable_seccomp" = "xyes"])
61
62 AM_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
67 AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$have_docbook" = "xyes"])
68
69 AC_ARG_ENABLE([examples],
70 [AC_HELP_STRING([--disable-examples], [do not install configuration examples])],
71 [], [enable_examples=yes])
72
73 AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
74
75 AC_ARG_ENABLE([python],
76 [AC_HELP_STRING([--enable-python], [enable python binding])],
77 [enable_python=yes], [enable_python=no])
78
79 AM_CONDITIONAL([ENABLE_PYTHON], [test "x$enable_python" = "xyes"])
80
81 AM_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
86 AC_ARG_ENABLE([tests],
87 [AC_HELP_STRING([--enable-tests], [build test/example binaries])],
88 [enable_tests=yes], [enable_tests=no])
89
90 AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = "xyes"])
91
92 AS_AC_EXPAND(PREFIX, $prefix)
93 AS_AC_EXPAND(LIBDIR, $libdir)
94 AS_AC_EXPAND(BINDIR, $bindir)
95 AS_AC_EXPAND(LIBEXECDIR, $libexecdir)
96 AS_AC_EXPAND(INCLUDEDIR, $includedir)
97 AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
98 AS_AC_EXPAND(DATADIR, $datadir)
99 AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
100 AS_AC_EXPAND(DOCDIR, $docdir)
101
102 AC_ARG_WITH([config-path],
103 [AC_HELP_STRING(
104 [--with-config-path=dir],
105 [lxc configuration repository path]
106 )], [], [with_config_path=['${localstatedir}/lib/lxc']])
107
108 AC_ARG_WITH([rootfs-path],
109 [AC_HELP_STRING(
110 [--with-rootfs-path=dir],
111 [lxc rootfs mount point]
112 )], [], [with_rootfs_path=['${libdir}/lxc/rootfs']])
113
114 AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
115 AS_AC_EXPAND(LXCPATH, "${with_config_path}")
116 AS_AC_EXPAND(LXCROOTFSMOUNT, "${with_rootfs_path}")
117 AS_AC_EXPAND(LXCTEMPLATEDIR, ['${datadir}/lxc/templates'])
118
119 AC_SUBST(LXCINITDIR, ['${libexecdir}'])
120
121 AC_CHECK_HEADERS([linux/unistd.h linux/netlink.h linux/genetlink.h],
122 [],
123 AC_MSG_ERROR([Please install the Linux kernel headers.]),
124 [#include <sys/socket.h>
125 ])
126
127 AC_CHECK_HEADERS([sys/capability.h], [], AC_MSG_ERROR([Please install the libcap development files.]),
128 [#include <sys/types.h>
129 #include <sys/capability.h>])
130 AC_CHECK_LIB(cap,cap_set_proc,caplib=yes,caplib=no)
131 AC_MSG_CHECKING([linux capabilities])
132 if test "x$caplib" = "xyes" ; then
133 CAP_LIBS="-lcap"
134 AC_MSG_RESULT([$CAP_LIBS])
135 else
136 AC_MSG_ERROR([not found])
137 fi
138 AC_SUBST([CAP_LIBS])
139
140 # Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
141 AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
142
143 AC_CHECK_HEADERS([sys/signalfd.h])
144
145 AC_PROG_GCC_TRADITIONAL
146 AC_PROG_SED
147
148 if test "x$GCC" = "xyes"; then
149 CFLAGS="$CFLAGS -Wall"
150 fi
151
152 AC_CONFIG_FILES([
153 Makefile
154 lxc.pc
155 lxc.spec
156 config/Makefile
157
158 doc/Makefile
159 doc/lxc-create.sgml
160 doc/lxc-destroy.sgml
161 doc/lxc-execute.sgml
162 doc/lxc-start.sgml
163 doc/lxc-checkpoint.sgml
164 doc/lxc-restart.sgml
165 doc/lxc-stop.sgml
166 doc/lxc-console.sgml
167 doc/lxc-freeze.sgml
168 doc/lxc-unfreeze.sgml
169 doc/lxc-monitor.sgml
170 doc/lxc-wait.sgml
171 doc/lxc-ls.sgml
172 doc/lxc-ps.sgml
173 doc/lxc-cgroup.sgml
174 doc/lxc-kill.sgml
175 doc/lxc-attach.sgml
176 doc/lxc.conf.sgml
177 doc/lxc.sgml
178 doc/common_options.sgml
179 doc/see_also.sgml
180
181 doc/rootfs/Makefile
182
183 doc/examples/Makefile
184 doc/examples/lxc-macvlan.conf
185 doc/examples/lxc-vlan.conf
186 doc/examples/lxc-no-netns.conf
187 doc/examples/lxc-empty-netns.conf
188 doc/examples/lxc-phys.conf
189 doc/examples/lxc-veth.conf
190 doc/examples/lxc-complex.conf
191
192 templates/Makefile
193 templates/lxc-lenny
194 templates/lxc-debian
195 templates/lxc-ubuntu
196 templates/lxc-ubuntu-cloud
197 templates/lxc-opensuse
198 templates/lxc-busybox
199 templates/lxc-fedora
200 templates/lxc-altlinux
201 templates/lxc-sshd
202 templates/lxc-archlinux
203
204 src/Makefile
205 src/lxc/Makefile
206 src/lxc/lxc-ps
207 src/lxc/lxc-ls
208 src/lxc/lxc-netstat
209 src/lxc/lxc-checkconfig
210 src/lxc/lxc-setcap
211 src/lxc/lxc-setuid
212 src/lxc/lxc-version
213 src/lxc/lxc-create
214 src/lxc/lxc-clone
215 src/lxc/lxc-shutdown
216 src/lxc/lxc-destroy
217
218 src/python-lxc/Makefile
219
220 src/tests/Makefile
221
222 ])
223 AC_CONFIG_COMMANDS([default],[[]],[[]])
224 AC_OUTPUT
225
226 if test "x$SETCAP" = "xno"; then
227 AC_MSG_NOTICE([
228
229 Warning:
230 --------
231
232 The setcap binary was not found. This means the tools to set the
233 privilege for the lxc commands are not available, that's ok, but you
234 will need to run these commands as root or install libcap-2.
235
236 ])
237
238 else
239
240 AC_MSG_NOTICE([
241
242 Advice:
243 -------
244
245 If you wish to have a non root user to use the lxc tools,
246 you can add the needed capabilities to the tools by invoking
247 the 'lxc-setcap' script. To remove the capabilities, use
248 'lxc-setcap -d'.
249 ])
250
251 fi