]> git.proxmox.com Git - mirror_lxc.git/blob - configure.ac
Merge the liblxc API work by Serge Hallyn.
[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 AC_ARG_ENABLE([rpath],
16 [AC_HELP_STRING([--disable-rpath], [do not set rpath in executables])],
17 [], [enable_rpath=yes])
18
19 AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" = "xyes"])
20
21 AC_ARG_ENABLE([doc],
22 [AC_HELP_STRING([--enable-doc], [make mans (require docbook2man installed) [default=auto]])],
23 [], [enable_doc=auto])
24
25 if test "x$enable_doc" = "xyes" -o "x$enable_doc" = "xauto"; then
26 AC_CHECK_PROG(have_docbook, [docbook2man], [yes], [no])
27
28 test "x$have_docbook" = "xno" -a "x$enable_doc" = "xyes" && \
29 AC_MSG_ERROR([docbook2man required by man request, but not found])
30 fi
31
32 AC_ARG_ENABLE([apparmor],
33 [AC_HELP_STRING([--enable-apparmor], [enable apparmor])],
34 [], [enable_apparmor=check])
35
36 if test "$enable_apparmor" = "check" ; then
37 AC_CHECK_LIB([apparmor],[aa_change_profile],[enable_apparmor=yes], [enable_apparmor=no])
38 fi
39
40 AM_CONDITIONAL([ENABLE_APPARMOR], [test "x$enable_apparmor" = "xyes"])
41
42 AM_COND_IF([ENABLE_APPARMOR],
43 [AC_CHECK_HEADER([sys/apparmor.h],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
44 AC_CHECK_LIB([apparmor], [aa_change_profile],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
45 AC_SUBST([APPARMOR_LIBS], [-lapparmor])])
46
47 AC_ARG_ENABLE([seccomp],
48 [AC_HELP_STRING([--enable-seccomp], [enable seccomp])],
49 [], [enable_seccomp=check])
50
51 if test "$enable_seccomp" = "check" ; then
52 AC_CHECK_LIB([seccomp],[seccomp_init],[enable_seccomp=yes],[enable_seccomp=no])
53 fi
54
55 AM_CONDITIONAL([ENABLE_SECCOMP], [test "x$enable_seccomp" = "xyes"])
56
57 AM_COND_IF([ENABLE_SECCOMP],
58 [AC_CHECK_HEADER([seccomp.h],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
59 AC_CHECK_LIB([seccomp], [seccomp_init],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
60 AC_SUBST([SECCOMP_LIBS], [-lseccomp])])
61
62 AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$have_docbook" = "xyes"])
63
64 AC_ARG_ENABLE([examples],
65 [AC_HELP_STRING([--disable-examples], [do not install configuration examples])],
66 [], [enable_examples=yes])
67
68 AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
69
70 AS_AC_EXPAND(PREFIX, $prefix)
71 AS_AC_EXPAND(LIBDIR, $libdir)
72 AS_AC_EXPAND(BINDIR, $bindir)
73 AS_AC_EXPAND(LIBEXECDIR, $libexecdir)
74 AS_AC_EXPAND(INCLUDEDIR, $includedir)
75 AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
76 AS_AC_EXPAND(DATADIR, $datadir)
77 AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
78 AS_AC_EXPAND(DOCDIR, $docdir)
79
80 AC_ARG_WITH([config-path],
81 [AC_HELP_STRING(
82 [--with-config-path=dir],
83 [lxc configuration repository path]
84 )], [], [with_config_path=['${localstatedir}/lib/lxc']])
85
86 AC_ARG_WITH([rootfs-path],
87 [AC_HELP_STRING(
88 [--with-rootfs-path=dir],
89 [lxc rootfs mount point]
90 )], [], [with_rootfs_path=['${libdir}/lxc/rootfs']])
91
92 AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
93 AS_AC_EXPAND(LXCPATH, "${with_config_path}")
94 AS_AC_EXPAND(LXCROOTFSMOUNT, "${with_rootfs_path}")
95 AS_AC_EXPAND(LXCTEMPLATEDIR, ['${datadir}/lxc/templates'])
96
97 AC_SUBST(LXCINITDIR, ['${libexecdir}'])
98
99 AC_CHECK_HEADERS([linux/unistd.h linux/netlink.h linux/genetlink.h],
100 [],
101 AC_MSG_ERROR([Please install the Linux kernel headers.]),
102 [#include <sys/socket.h>
103 ])
104
105 AC_CHECK_HEADERS([sys/capability.h], [], AC_MSG_ERROR([Please install the libcap development files.]),
106 [#include <sys/types.h>
107 #include <sys/capability.h>])
108 AC_CHECK_LIB(cap,cap_set_proc,caplib=yes,caplib=no)
109 AC_MSG_CHECKING([linux capabilities])
110 if test "x$caplib" = "xyes" ; then
111 CAP_LIBS="-lcap"
112 AC_MSG_RESULT([$CAP_LIBS])
113 else
114 AC_MSG_ERROR([not found])
115 fi
116 AC_SUBST([CAP_LIBS])
117
118 # Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
119 AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
120
121 AC_CHECK_HEADERS([sys/signalfd.h])
122
123 AC_PROG_GCC_TRADITIONAL
124
125 if test "x$GCC" = "xyes"; then
126 CFLAGS="$CFLAGS -Wall"
127 fi
128
129 AC_CONFIG_FILES([
130 Makefile
131 lxc.pc
132 lxc.spec
133 config/Makefile
134
135 doc/Makefile
136 doc/lxc-create.sgml
137 doc/lxc-destroy.sgml
138 doc/lxc-execute.sgml
139 doc/lxc-start.sgml
140 doc/lxc-checkpoint.sgml
141 doc/lxc-restart.sgml
142 doc/lxc-stop.sgml
143 doc/lxc-console.sgml
144 doc/lxc-freeze.sgml
145 doc/lxc-unfreeze.sgml
146 doc/lxc-monitor.sgml
147 doc/lxc-wait.sgml
148 doc/lxc-ls.sgml
149 doc/lxc-ps.sgml
150 doc/lxc-cgroup.sgml
151 doc/lxc-kill.sgml
152 doc/lxc-attach.sgml
153 doc/lxc.conf.sgml
154 doc/lxc.sgml
155 doc/common_options.sgml
156 doc/see_also.sgml
157
158 doc/rootfs/Makefile
159
160 doc/examples/Makefile
161 doc/examples/lxc-macvlan.conf
162 doc/examples/lxc-vlan.conf
163 doc/examples/lxc-no-netns.conf
164 doc/examples/lxc-empty-netns.conf
165 doc/examples/lxc-phys.conf
166 doc/examples/lxc-veth.conf
167 doc/examples/lxc-complex.conf
168
169 templates/Makefile
170 templates/lxc-lenny
171 templates/lxc-debian
172 templates/lxc-ubuntu
173 templates/lxc-ubuntu-cloud
174 templates/lxc-opensuse
175 templates/lxc-busybox
176 templates/lxc-fedora
177 templates/lxc-altlinux
178 templates/lxc-sshd
179 templates/lxc-archlinux
180
181 src/Makefile
182 src/lxc/Makefile
183 src/lxc/lxc-ps
184 src/lxc/lxc-ls
185 src/lxc/lxc-netstat
186 src/lxc/lxc-checkconfig
187 src/lxc/lxc-setcap
188 src/lxc/lxc-setuid
189 src/lxc/lxc-version
190 src/lxc/lxc-create
191 src/lxc/lxc-clone
192 src/lxc/lxc-shutdown
193 src/lxc/lxc-destroy
194
195 src/tests/Makefile
196
197 ])
198 AC_CONFIG_COMMANDS([default],[[]],[[]])
199 AC_OUTPUT
200
201 if test "x$SETCAP" = "xno"; then
202 AC_MSG_NOTICE([
203
204 Warning:
205 --------
206
207 The setcap binary was not found. This means the tools to set the
208 privilege for the lxc commands are not available, that's ok, but you
209 will need to run these commands as root or install libcap-2.
210
211 ])
212
213 else
214
215 AC_MSG_NOTICE([
216
217 Advice:
218 -------
219
220 If you wish to have a non root user to use the lxc tools,
221 you can add the needed capabilities to the tools by invoking
222 the 'lxc-setcap' script. To remove the capabilities, use
223 'lxc-setcap -d'.
224 ])
225
226 fi