]> git.proxmox.com Git - mirror_lxc.git/blame - configure.ac
lxc-attach gives a better error message
[mirror_lxc.git] / configure.ac
CommitLineData
5e97c3fc 1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
acb0e330 4AC_INIT([lxc], [0.7.3])
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
AN
14
15AC_ARG_ENABLE([doc],
16 [AC_HELP_STRING([--enable-doc], [make mans (require docbook2man installed) [default=auto]])],
17 [], [enable_doc=auto])
18
19if test "x$enable_doc" = "xyes" -o "x$enable_doc" = "xauto"; then
20 AC_CHECK_PROG(have_docbook, [docbook2man], [yes], [no])
21
22 test "x$have_docbook" = "xno" -a "x$enable_doc" = "xyes" && \
23 AC_MSG_ERROR([docbook2man required by man request, but not found])
24fi
25
26AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$have_docbook" = "xyes"])
27
3fb0a9bb
AN
28AC_ARG_ENABLE([examples],
29 [AC_HELP_STRING([--disable-examples], [do not install configuration examples])],
30 [], [enable_examples=yes])
31
32AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
33
b6345ba1
DL
34AS_AC_EXPAND(PREFIX, $prefix)
35AS_AC_EXPAND(LIBDIR, $libdir)
7ad641d5 36AS_AC_EXPAND(BINDIR, $bindir)
b6345ba1 37AS_AC_EXPAND(INCLUDEDIR, $includedir)
7ad641d5 38AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
3eae9733 39AS_AC_EXPAND(DATADIR, $datadir)
7ad641d5 40AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
0f71d073 41AS_AC_EXPAND(DOCDIR, $docdir)
805415fc 42
aef4ebcf
AN
43AC_ARG_WITH([config-path],
44 [AC_HELP_STRING(
45 [--with-config-path=dir],
e892973e 46 [lxc configuration repository path]
aef4ebcf
AN
47 )], [], [with_config_path="${localstatedir}/lib/lxc"])
48
196db713
DL
49AC_ARG_WITH([rootfs-path],
50 [AC_HELP_STRING(
51 [--with-rootfs-path=dir],
52 [lxc rootfs mount point]
baf6671f 53 )], [], [with_rootfs_path="${libdir}/lxc/rootfs"])
196db713 54
aef4ebcf 55AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
d674be08 56
aef4ebcf 57AS_AC_EXPAND(LXCPATH, "${with_config_path}")
196db713 58AS_AC_EXPAND(LXCROOTFSMOUNT, "${with_rootfs_path}")
d674be08 59AS_AC_EXPAND(LXCINITDIR, $libdir/lxc)
c01d62f2 60AS_AC_EXPAND(LXCTEMPLATEDIR, $libdir/lxc/templates)
881450bb 61AH_TEMPLATE([LXCPATH], [lxc configuration repository])
d674be08 62AH_TEMPLATE([LXCINITDIR], [lxc-init directory location])
196db713 63AH_TEMPLATE([LXCROOTFSMOUNT], [lxc default rootfs mount point])
881450bb 64AC_DEFINE_UNQUOTED(LXCPATH, "$LXCPATH")
d674be08 65AC_DEFINE_UNQUOTED(LXCINITDIR, "$LXCINITDIR")
196db713 66AC_DEFINE_UNQUOTED(LXCROOTFSMOUNT, "$LXCROOTFSMOUNT")
881450bb 67
90e0a869 68AC_CHECK_HEADERS([linux/netlink.h linux/genetlink.h],
288063bd
DL
69 [],
70 AC_MSG_ERROR([netlink headers not found. Please install the linux kernel headers.]),
71 [#include <sys/socket.h>
90e0a869 72 ])
35f549fe 73
74AC_CHECK_HEADERS([sys/capability.h], [], AC_MSG_ERROR([please install libcap-devel.]),
ddceb1f9
DL
75[#include <sys/types.h>
76#include <sys/capability.h>])
0af683cf 77AC_CHECK_LIB(cap,cap_set_proc,caplib=yes,caplib=no)
78AC_MSG_CHECKING([linux capabilities])
79if test "x$caplib" = "xyes" ; then
80 CAP_LIBS="-lcap"
81 AC_MSG_RESULT([$CAP_LIBS])
82else
83 AC_MSG_ERROR([not found])
84fi
85AC_SUBST([CAP_LIBS])
35f549fe 86
656994bb
MH
87# Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
88AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
89
ff218c25 90AC_CHECK_HEADERS([sys/signalfd.h])
91
5e97c3fc 92AC_PROG_GCC_TRADITIONAL
93
94if test "x$GCC" = "xyes"; then
8642237a 95 CFLAGS="$CFLAGS -Wall"
5e97c3fc 96fi
97
98AC_CONFIG_FILES([
288063bd 99 Makefile
b6345ba1 100 lxc.pc
5e97c3fc 101 lxc.spec
288063bd 102 config/Makefile
d823d5b9 103
288063bd 104 doc/Makefile
d823d5b9 105 doc/lxc-create.sgml
106 doc/lxc-destroy.sgml
107 doc/lxc-execute.sgml
108 doc/lxc-start.sgml
396639d4
DL
109 doc/lxc-checkpoint.sgml
110 doc/lxc-restart.sgml
d823d5b9 111 doc/lxc-stop.sgml
b0a33c1e 112 doc/lxc-console.sgml
d823d5b9 113 doc/lxc-freeze.sgml
114 doc/lxc-unfreeze.sgml
115 doc/lxc-monitor.sgml
116 doc/lxc-wait.sgml
117 doc/lxc-ls.sgml
118 doc/lxc-ps.sgml
b0e505c9 119 doc/lxc-cgroup.sgml
e4b3fe58 120 doc/lxc-kill.sgml
8a67a2b2 121 doc/lxc.conf.sgml
8b8b04f8 122 doc/lxc.sgml
10fba81b 123 doc/common_options.sgml
99e4008c 124 doc/see_also.sgml
d823d5b9 125
baf6671f
DL
126 doc/rootfs/Makefile
127
0f71d073
DL
128 doc/examples/Makefile
129 doc/examples/lxc-macvlan.conf
26c39028 130 doc/examples/lxc-vlan.conf
0f71d073
DL
131 doc/examples/lxc-no-netns.conf
132 doc/examples/lxc-empty-netns.conf
133 doc/examples/lxc-phys.conf
134 doc/examples/lxc-veth.conf
c553a9c2 135 doc/examples/lxc-complex.conf
0f71d073 136
c01d62f2 137 templates/Makefile
03d56dff 138 templates/lxc-lenny
c01d62f2 139 templates/lxc-debian
27b39fd4
SH
140 templates/lxc-lucid
141 templates/lxc-maverick
142 templates/lxc-natty
c01d62f2
DL
143 templates/lxc-busybox
144 templates/lxc-fedora
145 templates/lxc-sshd
c9844b87 146
288063bd 147 src/Makefile
5e97c3fc 148 src/lxc/Makefile
149 src/lxc/lxc-ps
d823d5b9 150 src/lxc/lxc-ls
9d0195cb 151 src/lxc/lxc-netstat
237315ff
DL
152 src/lxc/lxc-checkconfig
153 src/lxc/lxc-setcap
7a82e923 154 src/lxc/lxc-setuid
bcd952a1 155 src/lxc/lxc-version
ab2d32f8
DL
156 src/lxc/lxc-create
157 src/lxc/lxc-destroy
c9844b87 158
5e97c3fc 159])
160AC_CONFIG_COMMANDS([default],[[]],[[]])
161AC_OUTPUT
805415fc 162
163if test "x$SETCAP" = "xno"; then
f8dafdbb 164 AC_MSG_NOTICE([
805415fc 165
166Warning:
167--------
168
87476557
FG
169The setcap binary was not found. This means the tools to set the
170privilege for the lxc commands are not available, that's ok, but you
171will need to run these commands as root or install libcap-2.
805415fc 172
173])
174
175else
176
f8dafdbb 177 AC_MSG_NOTICE([
805415fc 178
179Advice:
180-------
181
87476557 182If you wish to have a non root user to use the lxc tools,
237315ff
DL
183you can add the needed capabilities to the tools by invoking
184the 'lxc-setcap' script. To remove the capabilities, use
87476557 185'lxc-setcap -d'.
805415fc 186])
187
188fi