]> git.proxmox.com Git - mirror_lxc.git/blame_incremental - configure.ac
Rewrite lxc-ls in python
[mirror_lxc.git] / configure.ac
... / ...
CommitLineData
1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4AC_INIT([lxc], [0.8.0])
5
6AC_CONFIG_SRCDIR([configure.ac])
7AC_CONFIG_AUX_DIR([config])
8AM_CONFIG_HEADER([src/config.h])
9AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability])
10AC_CANONICAL_HOST
11AM_PROG_CC_C_O
12AC_GNU_SOURCE
13AC_CHECK_PROG(SETCAP, setcap, yes, no, $PATH$PATH_SEPARATOR/sbin)
14
15AC_MSG_CHECKING([host distribution])
16AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, oracle, fedora, suse, gentoo, debian, arch, slackware, paldo, mandriva or pardus]))
17if test "z$with_distro" = "z"; then
18 with_distro=`lsb_release -is`
19fi
20if test "z$with_distro" = "z"; then
21 AC_CHECK_FILE(/etc/redhat-release,with_distro="redhat")
22 AC_CHECK_FILE(/etc/oracle-release,with_distro="oracle")
23 AC_CHECK_FILE(/etc/fedora-release,with_distro="fedora")
24 AC_CHECK_FILE(/etc/SuSE-release,with_distro="suse")
25 AC_CHECK_FILE(/etc/gentoo-release,with_distro="gentoo")
26 AC_CHECK_FILE(/etc/debian_version,with_distro="debian")
27 AC_CHECK_FILE(/etc/arch-release,with_distro="arch")
28 AC_CHECK_FILE(/etc/slackware-version,with_distro="slackware")
29 AC_CHECK_FILE(/etc/frugalware-release,with_distro="frugalware")
30 AC_CHECK_FILE(/etc/mandrakelinux-release, with_distro="mandriva")
31 AC_CHECK_FILE(/etc/mandriva-release,with_distro="mandriva")
32 AC_CHECK_FILE(/etc/pardus-release,with_distro="pardus")
33fi
34with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]'`
35
36if test "z$with_distro" = "z"; then
37 with_distro="unknown"
38fi
39case $with_distro in
40 ubuntu)
41 conffile=lxc.conf.ubuntu
42 ;;
43 redhat|fedora|oracle|oracleserver)
44 conffile=lxc.conf.libvirt
45 ;;
46 *)
47 echo -n "Linux distribution network config unknown, defaulting to lxc.network.type = empty"
48 conffile=lxc.conf.unknown
49 ;;
50esac
51AC_MSG_RESULT([$with_distro])
52
53AM_CONDITIONAL([HAVE_DEBIAN], [test x"$with_distro" = "xdebian" -o x"$with_distro" = "xubuntu"])
54
55AC_ARG_ENABLE([rpath],
56 [AC_HELP_STRING([--disable-rpath], [do not set rpath in executables])],
57 [], [enable_rpath=yes])
58
59AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" = "xyes"])
60
61AC_ARG_ENABLE([doc],
62 [AC_HELP_STRING([--enable-doc], [make mans (require docbook2x-man installed) [default=auto]])],
63 [], [enable_doc=auto])
64
65if test "x$enable_doc" = "xyes" -o "x$enable_doc" = "xauto"; then
66 db2xman=""
67
68 AC_MSG_CHECKING(for docbook2x-man)
69 for name in docbook2x-man db2x_docbook2man; do
70 if "$name" --help >/dev/null 2>&1; then
71 db2xman="$name"
72 break;
73 fi
74 done
75
76 if test -n "${db2xman}"; then
77 AC_MSG_RESULT(${db2xman})
78 else
79 AC_MSG_RESULT(no)
80 if test "x$enable_doc" = "xyes"; then
81 AC_MSG_ERROR([docbook2x-man required by man request, but not found])
82 fi
83 fi
84
85 AC_SUBST(db2xman)
86fi
87
88AC_ARG_ENABLE([apparmor],
89 [AC_HELP_STRING([--enable-apparmor], [enable apparmor])],
90 [], [enable_apparmor=check])
91
92if test "$enable_apparmor" = "check" ; then
93 AC_CHECK_LIB([apparmor],[aa_change_profile],[enable_apparmor=yes], [enable_apparmor=no])
94fi
95
96AM_CONDITIONAL([ENABLE_APPARMOR], [test "x$enable_apparmor" = "xyes"])
97
98AM_COND_IF([ENABLE_APPARMOR],
99 [AC_CHECK_HEADER([sys/apparmor.h],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
100 AC_CHECK_LIB([apparmor], [aa_change_profile],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
101 AC_SUBST([APPARMOR_LIBS], [-lapparmor])])
102
103AC_ARG_ENABLE([seccomp],
104 [AC_HELP_STRING([--enable-seccomp], [enable seccomp])],
105 [], [enable_seccomp=check])
106
107if test "$enable_seccomp" = "check" ; then
108 AC_CHECK_LIB([seccomp],[seccomp_init],[enable_seccomp=yes],[enable_seccomp=no])
109fi
110
111AM_CONDITIONAL([ENABLE_SECCOMP], [test "x$enable_seccomp" = "xyes"])
112
113AM_COND_IF([ENABLE_SECCOMP],
114 [AC_CHECK_HEADER([seccomp.h],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
115 AC_CHECK_LIB([seccomp], [seccomp_init],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
116 AC_SUBST([SECCOMP_LIBS], [-lseccomp])])
117
118AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$db2xman" != "x"])
119
120AC_ARG_ENABLE([examples],
121 [AC_HELP_STRING([--disable-examples], [do not install configuration examples])],
122 [], [enable_examples=yes])
123
124AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
125
126AC_ARG_ENABLE([python],
127 [AC_HELP_STRING([--enable-python], [enable python binding])],
128 [enable_python=yes], [enable_python=no])
129
130AM_CONDITIONAL([ENABLE_PYTHON], [test "x$enable_python" = "xyes"])
131
132AM_COND_IF([ENABLE_PYTHON],
133 [AM_PATH_PYTHON([3.2], [], [AC_MSG_ERROR([You must install python3])])
134 AC_CHECK_HEADER([python$PYTHON_VERSION/Python.h],[],[AC_MSG_ERROR([You must install python3-dev])])
135 AC_DEFINE_UNQUOTED([ENABLE_PYTHON], 1, [Python3 is available])])
136
137AC_ARG_ENABLE([tests],
138 [AC_HELP_STRING([--enable-tests], [build test/example binaries])],
139 [enable_tests=yes], [enable_tests=no])
140
141AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = "xyes"])
142
143AS_AC_EXPAND(PREFIX, $prefix)
144AS_AC_EXPAND(LIBDIR, $libdir)
145AS_AC_EXPAND(BINDIR, $bindir)
146AS_AC_EXPAND(LIBEXECDIR, $libexecdir)
147AS_AC_EXPAND(INCLUDEDIR, $includedir)
148AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
149AS_AC_EXPAND(DATADIR, $datadir)
150AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
151AS_AC_EXPAND(DOCDIR, $docdir)
152
153AC_ARG_WITH([config-path],
154 [AC_HELP_STRING(
155 [--with-config-path=dir],
156 [lxc configuration repository path]
157 )], [], [with_config_path=['${localstatedir}/lib/lxc']])
158
159AC_ARG_WITH([rootfs-path],
160 [AC_HELP_STRING(
161 [--with-rootfs-path=dir],
162 [lxc rootfs mount point]
163 )], [], [with_rootfs_path=['${libdir}/lxc/rootfs']])
164
165AS_AC_EXPAND(LXC_CONFFILE, $conffile)
166AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
167AS_AC_EXPAND(LXCPATH, "${with_config_path}")
168AS_AC_EXPAND(LXCROOTFSMOUNT, "${with_rootfs_path}")
169AS_AC_EXPAND(LXCTEMPLATEDIR, ['${datadir}/lxc/templates'])
170
171AS_AC_EXPAND(LXCINITDIR, ['${libexecdir}'])
172
173AC_CHECK_HEADERS([linux/unistd.h linux/netlink.h linux/genetlink.h],
174 [],
175 AC_MSG_ERROR([Please install the Linux kernel headers.]),
176 [#include <sys/socket.h>
177 ])
178
179AC_CHECK_HEADERS([sys/capability.h], [], AC_MSG_ERROR([Please install the libcap development files.]),
180[#include <sys/types.h>
181#include <sys/capability.h>])
182AC_CHECK_LIB(cap,cap_set_proc,caplib=yes,caplib=no)
183AC_MSG_CHECKING([linux capabilities])
184if test "x$caplib" = "xyes" ; then
185 CAP_LIBS="-lcap"
186 AC_MSG_RESULT([$CAP_LIBS])
187else
188 AC_MSG_ERROR([not found])
189fi
190AC_SUBST([CAP_LIBS])
191
192# Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
193AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
194
195AC_CHECK_HEADERS([sys/signalfd.h])
196
197AC_PROG_GCC_TRADITIONAL
198AC_PROG_SED
199
200if test "x$GCC" = "xyes"; then
201 CFLAGS="$CFLAGS -Wall -Werror"
202fi
203
204AC_CONFIG_FILES([
205 Makefile
206 lxc.pc
207 lxc.spec
208 config/Makefile
209
210 doc/Makefile
211 doc/lxc-create.sgml
212 doc/lxc-destroy.sgml
213 doc/lxc-execute.sgml
214 doc/lxc-start.sgml
215 doc/lxc-checkpoint.sgml
216 doc/lxc-restart.sgml
217 doc/lxc-stop.sgml
218 doc/lxc-console.sgml
219 doc/lxc-freeze.sgml
220 doc/lxc-unfreeze.sgml
221 doc/lxc-monitor.sgml
222 doc/lxc-wait.sgml
223 doc/lxc-ls.sgml
224 doc/lxc-ps.sgml
225 doc/lxc-cgroup.sgml
226 doc/lxc-kill.sgml
227 doc/lxc-attach.sgml
228 doc/lxc.conf.sgml
229 doc/lxc.sgml
230 doc/common_options.sgml
231 doc/see_also.sgml
232
233 doc/rootfs/Makefile
234
235 doc/examples/Makefile
236 doc/examples/lxc-macvlan.conf
237 doc/examples/lxc-vlan.conf
238 doc/examples/lxc-no-netns.conf
239 doc/examples/lxc-empty-netns.conf
240 doc/examples/lxc-phys.conf
241 doc/examples/lxc-veth.conf
242 doc/examples/lxc-complex.conf
243
244 templates/Makefile
245 templates/lxc-lenny
246 templates/lxc-debian
247 templates/lxc-ubuntu-cloud
248 templates/lxc-opensuse
249 templates/lxc-busybox
250 templates/lxc-fedora
251 templates/lxc-oracle
252 templates/lxc-altlinux
253 templates/lxc-sshd
254 templates/lxc-archlinux
255
256 src/Makefile
257 src/lxc/Makefile
258 src/lxc/lxc-ps
259 src/lxc/lxc-netstat
260 src/lxc/lxc-checkconfig
261 src/lxc/lxc-setcap
262 src/lxc/lxc-setuid
263 src/lxc/lxc-version
264 src/lxc/lxc-create
265 src/lxc/lxc-clone
266 src/lxc/lxc-shutdown
267 src/lxc/lxc-start-ephemeral
268 src/lxc/lxc-destroy
269
270 src/python-lxc/Makefile
271
272 src/tests/Makefile
273
274])
275AC_CONFIG_COMMANDS([default],[[]],[[]])
276AC_OUTPUT
277
278if test "x$SETCAP" = "xno"; then
279 AC_MSG_NOTICE([
280
281Warning:
282--------
283
284The setcap binary was not found. This means the tools to set the
285privilege for the lxc commands are not available, that's ok, but you
286will need to run these commands as root or install libcap-2.
287
288])
289
290else
291
292 AC_MSG_NOTICE([
293
294Advice:
295-------
296
297If you wish to have a non root user to use the lxc tools,
298you can add the needed capabilities to the tools by invoking
299the 'lxc-setcap' script. To remove the capabilities, use
300'lxc-setcap -d'.
301])
302
303fi