]> git.proxmox.com Git - mirror_lxc.git/blob - configure.ac
python: Remove hardcoded LXCPATH
[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([-Wall -Werror -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 AC_MSG_CHECKING([host distribution])
16 AC_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]))
17 if test "z$with_distro" = "z"; then
18 with_distro=`lsb_release -is`
19 fi
20 if 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")
33 fi
34 with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]'`
35
36 if test "z$with_distro" = "z"; then
37 with_distro="unknown"
38 fi
39 case $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 ;;
50 esac
51 AC_MSG_RESULT([$with_distro])
52
53 AM_CONDITIONAL([HAVE_DEBIAN], [test x"$with_distro" = "xdebian" -o x"$with_distro" = "xubuntu"])
54
55 AC_ARG_ENABLE([rpath],
56 [AC_HELP_STRING([--disable-rpath], [do not set rpath in executables])],
57 [], [enable_rpath=yes])
58
59 AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" = "xyes"])
60
61 AC_ARG_ENABLE([doc],
62 [AC_HELP_STRING([--enable-doc], [make mans (require docbook2x-man installed) [default=auto]])],
63 [], [enable_doc=auto])
64
65 if 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)
86 fi
87
88 AC_ARG_ENABLE([apparmor],
89 [AC_HELP_STRING([--enable-apparmor], [enable apparmor])],
90 [], [enable_apparmor=check])
91
92 if test "$enable_apparmor" = "check" ; then
93 AC_CHECK_LIB([apparmor],[aa_change_profile],[enable_apparmor=yes], [enable_apparmor=no])
94 fi
95
96 AM_CONDITIONAL([ENABLE_APPARMOR], [test "x$enable_apparmor" = "xyes"])
97
98 AM_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
103 AC_ARG_ENABLE([seccomp],
104 [AC_HELP_STRING([--enable-seccomp], [enable seccomp])],
105 [], [enable_seccomp=check])
106
107 if test "$enable_seccomp" = "check" ; then
108 AC_CHECK_LIB([seccomp],[seccomp_init],[enable_seccomp=yes],[enable_seccomp=no])
109 fi
110
111 AM_CONDITIONAL([ENABLE_SECCOMP], [test "x$enable_seccomp" = "xyes"])
112
113 AM_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
118 AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$db2xman" != "x"])
119
120 AC_ARG_ENABLE([examples],
121 [AC_HELP_STRING([--disable-examples], [do not install configuration examples])],
122 [], [enable_examples=yes])
123
124 AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
125
126 AC_ARG_ENABLE([python],
127 [AC_HELP_STRING([--enable-python], [enable python binding])],
128 [enable_python=yes], [enable_python=no])
129
130 AM_CONDITIONAL([ENABLE_PYTHON], [test "x$enable_python" = "xyes"])
131
132 AM_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
137 AC_ARG_ENABLE([tests],
138 [AC_HELP_STRING([--enable-tests], [build test/example binaries])],
139 [enable_tests=yes], [enable_tests=no])
140
141 AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = "xyes"])
142
143 AS_AC_EXPAND(PREFIX, $prefix)
144 AS_AC_EXPAND(LIBDIR, $libdir)
145 AS_AC_EXPAND(BINDIR, $bindir)
146 AS_AC_EXPAND(LIBEXECDIR, $libexecdir)
147 AS_AC_EXPAND(INCLUDEDIR, $includedir)
148 AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
149 AS_AC_EXPAND(DATADIR, $datadir)
150 AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
151 AS_AC_EXPAND(DOCDIR, $docdir)
152
153 AC_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
159 AC_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
165 AS_AC_EXPAND(LXC_CONFFILE, $conffile)
166 AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
167 AS_AC_EXPAND(LXCPATH, "${with_config_path}")
168 AS_AC_EXPAND(LXCROOTFSMOUNT, "${with_rootfs_path}")
169 AS_AC_EXPAND(LXCTEMPLATEDIR, ['${datadir}/lxc/templates'])
170
171 AS_AC_EXPAND(LXCINITDIR, ['${libexecdir}'])
172
173 AC_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
179 AC_CHECK_HEADERS([sys/capability.h], [], AC_MSG_ERROR([Please install the libcap development files.]),
180 [#include <sys/types.h>
181 #include <sys/capability.h>])
182 AC_CHECK_LIB(cap,cap_set_proc,caplib=yes,caplib=no)
183 AC_MSG_CHECKING([linux capabilities])
184 if test "x$caplib" = "xyes" ; then
185 CAP_LIBS="-lcap"
186 AC_MSG_RESULT([$CAP_LIBS])
187 else
188 AC_MSG_ERROR([not found])
189 fi
190 AC_SUBST([CAP_LIBS])
191
192 # Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
193 AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
194
195 AC_CHECK_HEADERS([sys/signalfd.h])
196
197 AC_PROG_GCC_TRADITIONAL
198 AC_PROG_SED
199
200 if test "x$GCC" = "xyes"; then
201 CFLAGS="$CFLAGS -Wall -Werror"
202 fi
203
204 AC_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 doc/legacy/lxc-ls.sgml
233
234 doc/rootfs/Makefile
235
236 doc/examples/Makefile
237 doc/examples/lxc-macvlan.conf
238 doc/examples/lxc-vlan.conf
239 doc/examples/lxc-no-netns.conf
240 doc/examples/lxc-empty-netns.conf
241 doc/examples/lxc-phys.conf
242 doc/examples/lxc-veth.conf
243 doc/examples/lxc-complex.conf
244
245 templates/Makefile
246 templates/lxc-lenny
247 templates/lxc-debian
248 templates/lxc-ubuntu
249 templates/lxc-ubuntu-cloud
250 templates/lxc-opensuse
251 templates/lxc-busybox
252 templates/lxc-fedora
253 templates/lxc-oracle
254 templates/lxc-altlinux
255 templates/lxc-sshd
256 templates/lxc-archlinux
257
258 src/Makefile
259 src/lxc/Makefile
260 src/lxc/lxc-ps
261 src/lxc/lxc-netstat
262 src/lxc/lxc-checkconfig
263 src/lxc/lxc-setcap
264 src/lxc/lxc-setuid
265 src/lxc/lxc-version
266 src/lxc/lxc-create
267 src/lxc/lxc-clone
268 src/lxc/lxc-shutdown
269 src/lxc/lxc-start-ephemeral
270 src/lxc/lxc-destroy
271 src/lxc/legacy/lxc-ls
272
273 src/python-lxc/Makefile
274 src/python-lxc/lxc/__init__.py
275 src/python-lxc/examples/api_test.py
276
277 src/tests/Makefile
278
279 ])
280 AC_CONFIG_COMMANDS([default],[[]],[[]])
281 AC_OUTPUT
282
283 if test "x$SETCAP" = "xno"; then
284 AC_MSG_NOTICE([
285
286 Warning:
287 --------
288
289 The setcap binary was not found. This means the tools to set the
290 privilege for the lxc commands are not available, that's ok, but you
291 will need to run these commands as root or install libcap-2.
292
293 ])
294
295 else
296
297 AC_MSG_NOTICE([
298
299 Advice:
300 -------
301
302 If you wish to have a non root user to use the lxc tools,
303 you can add the needed capabilities to the tools by invoking
304 the 'lxc-setcap' script. To remove the capabilities, use
305 'lxc-setcap -d'.
306 ])
307
308 fi