]> git.proxmox.com Git - mirror_lxc.git/blob - configure.ac
version 0.7.2
[mirror_lxc.git] / configure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 AC_INIT([lxc], [0.7.2])
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([doc],
16 [AC_HELP_STRING([--enable-doc], [make mans (require docbook2man installed) [default=auto]])],
17 [], [enable_doc=auto])
18
19 if 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])
24 fi
25
26 AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$have_docbook" = "xyes"])
27
28 AC_ARG_ENABLE([examples],
29 [AC_HELP_STRING([--disable-examples], [do not install configuration examples])],
30 [], [enable_examples=yes])
31
32 AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
33
34 AS_AC_EXPAND(PREFIX, $prefix)
35 AS_AC_EXPAND(LIBDIR, $libdir)
36 AS_AC_EXPAND(BINDIR, $bindir)
37 AS_AC_EXPAND(INCLUDEDIR, $includedir)
38 AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
39 AS_AC_EXPAND(DATADIR, $datadir)
40 AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
41 AS_AC_EXPAND(DOCDIR, $docdir)
42
43 AC_ARG_WITH([config-path],
44 [AC_HELP_STRING(
45 [--with-config-path=dir],
46 [lxc configuration repository path]
47 )], [], [with_config_path="${localstatedir}/lib/lxc"])
48
49 AC_ARG_WITH([rootfs-path],
50 [AC_HELP_STRING(
51 [--with-rootfs-path=dir],
52 [lxc rootfs mount point]
53 )], [], [with_rootfs_path="${libdir}/lxc/rootfs"])
54
55 AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
56
57 AS_AC_EXPAND(LXCPATH, "${with_config_path}")
58 AS_AC_EXPAND(LXCROOTFSMOUNT, "${with_rootfs_path}")
59 AS_AC_EXPAND(LXCINITDIR, $libdir/lxc)
60 AS_AC_EXPAND(LXCTEMPLATEDIR, $libdir/lxc/templates)
61 AH_TEMPLATE([LXCPATH], [lxc configuration repository])
62 AH_TEMPLATE([LXCINITDIR], [lxc-init directory location])
63 AH_TEMPLATE([LXCROOTFSMOUNT], [lxc default rootfs mount point])
64 AC_DEFINE_UNQUOTED(LXCPATH, "$LXCPATH")
65 AC_DEFINE_UNQUOTED(LXCINITDIR, "$LXCINITDIR")
66 AC_DEFINE_UNQUOTED(LXCROOTFSMOUNT, "$LXCROOTFSMOUNT")
67
68 AC_CHECK_HEADERS([linux/netlink.h linux/genetlink.h],
69 [],
70 AC_MSG_ERROR([netlink headers not found. Please install the linux kernel headers.]),
71 [#include <sys/socket.h>
72 ])
73
74 AC_CHECK_HEADERS([sys/capability.h], [], AC_MSG_ERROR([please install libcap-devel.]),
75 [#include <sys/types.h>
76 #include <sys/capability.h>])
77 AC_CHECK_LIB(cap,cap_set_proc,caplib=yes,caplib=no)
78 AC_MSG_CHECKING([linux capabilities])
79 if test "x$caplib" = "xyes" ; then
80 CAP_LIBS="-lcap"
81 AC_MSG_RESULT([$CAP_LIBS])
82 else
83 AC_MSG_ERROR([not found])
84 fi
85 AC_SUBST([CAP_LIBS])
86
87 # Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
88 AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
89
90 AC_CHECK_HEADERS([sys/signalfd.h])
91
92 AC_PROG_GCC_TRADITIONAL
93
94 if test "x$GCC" = "xyes"; then
95 CFLAGS="$CFLAGS -Wall"
96 fi
97
98 AC_CONFIG_FILES([
99 Makefile
100 lxc.pc
101 lxc.spec
102 config/Makefile
103
104 doc/Makefile
105 doc/lxc-create.sgml
106 doc/lxc-destroy.sgml
107 doc/lxc-execute.sgml
108 doc/lxc-start.sgml
109 doc/lxc-checkpoint.sgml
110 doc/lxc-restart.sgml
111 doc/lxc-stop.sgml
112 doc/lxc-console.sgml
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
119 doc/lxc-cgroup.sgml
120 doc/lxc-kill.sgml
121 doc/lxc.conf.sgml
122 doc/lxc.sgml
123 doc/common_options.sgml
124 doc/see_also.sgml
125
126 doc/rootfs/Makefile
127
128 doc/examples/Makefile
129 doc/examples/lxc-macvlan.conf
130 doc/examples/lxc-vlan.conf
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
135 doc/examples/lxc-complex.conf
136
137 templates/Makefile
138 templates/lxc-debian
139 templates/lxc-ubuntu
140 templates/lxc-busybox
141 templates/lxc-fedora
142 templates/lxc-sshd
143
144 src/Makefile
145 src/lxc/Makefile
146 src/lxc/lxc-ps
147 src/lxc/lxc-ls
148 src/lxc/lxc-netstat
149 src/lxc/lxc-checkconfig
150 src/lxc/lxc-setcap
151 src/lxc/lxc-setuid
152 src/lxc/lxc-version
153 src/lxc/lxc-create
154 src/lxc/lxc-destroy
155
156 ])
157 AC_CONFIG_COMMANDS([default],[[]],[[]])
158 AC_OUTPUT
159
160 if test "x$SETCAP" = "xno"; then
161 AC_MSG_NOTICE([
162
163 Warning:
164 --------
165
166 The setcap binary was not found. This means the tools to set the
167 privilege for the lxc commands are not available, that's ok, but you
168 will need to run these commands as root or install libcap-2.
169
170 ])
171
172 else
173
174 AC_MSG_NOTICE([
175
176 Advice:
177 -------
178
179 If you wish to have a non root user to use the lxc tools,
180 you can add the needed capabilities to the tools by invoking
181 the 'lxc-setcap' script. To remove the capabilities, use
182 'lxc-setcap -d'.
183 ])
184
185 fi