2008-08-06 14:32:29 +00:00
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
2013-04-05 11:47:48 +02:00
AC_INIT([lxc], [0.9.0])
2008-08-06 14:32:29 +00:00
2009-04-26 11:43:41 +02:00
AC_CONFIG_SRCDIR([configure.ac])
2008-08-06 14:32:29 +00:00
AC_CONFIG_AUX_DIR([config])
2013-02-19 10:17:41 +01:00
AC_CONFIG_HEADERS([src/config.h])
2012-11-12 14:32:39 -05:00
AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability])
2008-08-06 14:32:29 +00:00
AC_CANONICAL_HOST
AM_PROG_CC_C_O
AC_GNU_SOURCE
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
2013-01-08 12:02:52 -05:00
# Detect the distribution. This is used for the default configuration and
# for some distro-specific build options.
2012-10-17 13:28:27 -04:00
AC_MSG_CHECKING([host distribution])
2013-01-08 12:02:52 -05:00
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.]))
2012-10-17 13:28:27 -04:00
if test "z$with_distro" = "z"; then
with_distro=`lsb_release -is`
2012-08-27 19:04:43 -04:00
fi
2012-10-17 13:28:27 -04:00
if test "z$with_distro" = "z"; then
AC_CHECK_FILE(/etc/redhat-release,with_distro="redhat")
AC_CHECK_FILE(/etc/oracle-release,with_distro="oracle")
AC_CHECK_FILE(/etc/fedora-release,with_distro="fedora")
AC_CHECK_FILE(/etc/SuSE-release,with_distro="suse")
AC_CHECK_FILE(/etc/gentoo-release,with_distro="gentoo")
AC_CHECK_FILE(/etc/debian_version,with_distro="debian")
AC_CHECK_FILE(/etc/arch-release,with_distro="arch")
AC_CHECK_FILE(/etc/slackware-version,with_distro="slackware")
AC_CHECK_FILE(/etc/frugalware-release,with_distro="frugalware")
AC_CHECK_FILE(/etc/mandrakelinux-release, with_distro="mandriva")
AC_CHECK_FILE(/etc/mandriva-release,with_distro="mandriva")
AC_CHECK_FILE(/etc/pardus-release,with_distro="pardus")
fi
with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]'`
if test "z$with_distro" = "z"; then
with_distro="unknown"
fi
case $with_distro in
ubuntu)
2013-05-31 16:02:33 +02:00
distroconf=default.conf.ubuntu
2012-10-17 13:28:27 -04:00
;;
redhat|fedora|oracle|oracleserver)
2013-05-31 16:02:33 +02:00
distroconf=default.conf.libvirt
2012-10-17 13:28:27 -04:00
;;
*)
echo -n "Linux distribution network config unknown, defaulting to lxc.network.type = empty"
2013-05-31 16:02:33 +02:00
distroconf=default.conf.unknown
2012-10-17 13:28:27 -04:00
;;
esac
AC_MSG_RESULT([$with_distro])
AM_CONDITIONAL([HAVE_DEBIAN], [test x"$with_distro" = "xdebian" -o x"$with_distro" = "xubuntu"])
2012-08-27 19:04:43 -04:00
2013-01-08 12:02:52 -05:00
# Allow disabling rpath
2011-09-13 15:08:04 +02:00
AC_ARG_ENABLE([rpath],
[AC_HELP_STRING([--disable-rpath], [do not set rpath in executables])],
[], [enable_rpath=yes])
AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" = "xyes"])
2013-01-08 12:02:52 -05:00
# Documentation (manpages)
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
AC_ARG_ENABLE([doc],
2013-04-29 16:47:35 -04:00
[AC_HELP_STRING([--enable-doc], [make mans (requires docbook2man or docbook2x-man to be installed) [default=auto]])],
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
[], [enable_doc=auto])
if test "x$enable_doc" = "xyes" -o "x$enable_doc" = "xauto"; then
2012-11-12 15:38:50 -05:00
db2xman=""
2013-04-29 16:47:35 -04:00
dbparsers="docbook2x-man db2x_docbook2man docbook2man"
2013-04-25 12:20:30 +02:00
2012-11-12 15:38:50 -05:00
AC_MSG_CHECKING(for docbook2x-man)
2013-04-25 12:20:30 +02:00
for name in ${dbparsers}; do
2012-11-12 15:38:50 -05:00
if "$name" --help >/dev/null 2>&1; then
db2xman="$name"
break;
fi
done
if test -n "${db2xman}"; then
2013-01-08 12:02:52 -05:00
AC_MSG_RESULT([${db2xman}])
2012-11-12 15:38:50 -05:00
else
2013-01-08 12:02:52 -05:00
AC_MSG_RESULT([no])
2012-11-12 15:38:50 -05:00
if test "x$enable_doc" = "xyes"; then
AC_MSG_ERROR([docbook2x-man required by man request, but not found])
fi
fi
AC_SUBST(db2xman)
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
fi
2013-01-08 12:02:52 -05:00
AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$db2xman" != "x"])
configure.ac - allow user to switch off/on documentation generation
Andrian Nord <NightNord@gmail.com>:
>> > > As documentation requires docbook2man to be installed, which is not,
>> > > otherwise, required for proper LXC work or compilation process, it
>> > > might be usefull to be able to switch it off.
Michel Normand <normand@fr.ibm.com>:
> > For me, it is Ok to add a --enable/disable/-doc,
> > but not make configure to fail if no option specified
> > and no docbook2man package.
> >
> > For me it should be optionnal.
> > I like the current behaviour where configure is running without option
> > and is enabling/disabling by itself the doc building.
> > Could you send a new patch with this idea ?
Andrian Nord <NightNord@gmail.com>:
Of course. You mean, that you what default behaviour to remain
auto-detection? That is:
--enable-doc: require docbook2man or fail, generate mans
--enable-doc=auto, or not specified (default): check for docbook2man,
generate mans if found, silently ignore if not found (I suppose
diagnostic message is redundant, as information already contains into
./configure --help)
--disable-doc: never check for docbook2man and don't gen mans
Here comes a patch what do this, as far as I see
(I'm sorry for violating post-rules in previous mail, now I'll do all
right, I hope. Should I attach patch anyway, as it might be usefull
for applying?)
Signed-off-by: Andrian Nord <NightNord@gmail.com>
Acked-by: Michel Normand <normand@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
2009-11-04 14:03:44 +01:00
2013-04-29 16:47:35 -04:00
if test "x$db2xman" = "xdocbook2man"; then
docdtd="\"-//Davenport//DTD DocBook V3.0//EN\""
else
docdtd="\"-//OASIS//DTD DocBook XML\" \"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\""
fi
AC_SUBST(docdtd)
2013-01-08 12:02:52 -05:00
# Apparmor
2012-08-17 13:04:34 -05:00
AC_ARG_ENABLE([apparmor],
[AC_HELP_STRING([--enable-apparmor], [enable apparmor])],
[], [enable_apparmor=check])
if test "$enable_apparmor" = "check" ; then
AC_CHECK_LIB([apparmor],[aa_change_profile],[enable_apparmor=yes], [enable_apparmor=no])
fi
AM_CONDITIONAL([ENABLE_APPARMOR], [test "x$enable_apparmor" = "xyes"])
2013-07-12 14:07:23 -05:00
AC_CHECK_LIB([gnutls], [gnutls_hash_fast])
2012-07-31 16:04:33 +02:00
AM_COND_IF([ENABLE_APPARMOR],
2013-01-08 12:02:52 -05:00
[AC_CHECK_HEADER([sys/apparmor.h],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
AC_CHECK_LIB([apparmor], [aa_change_profile],[],[AC_MSG_ERROR([You must install the AppArmor development package in order to compile lxc])])
AC_SUBST([APPARMOR_LIBS], [-lapparmor])])
2012-07-31 16:04:33 +02:00
2013-01-08 12:02:52 -05:00
# Seccomp syscall filter
2012-08-17 13:04:34 -05:00
AC_ARG_ENABLE([seccomp],
[AC_HELP_STRING([--enable-seccomp], [enable seccomp])],
[], [enable_seccomp=check])
if test "$enable_seccomp" = "check" ; then
AC_CHECK_LIB([seccomp],[seccomp_init],[enable_seccomp=yes],[enable_seccomp=no])
fi
AM_CONDITIONAL([ENABLE_SECCOMP], [test "x$enable_seccomp" = "xyes"])
2012-07-27 21:13:53 -05:00
AM_COND_IF([ENABLE_SECCOMP],
2013-01-08 12:02:52 -05:00
[AC_CHECK_HEADER([seccomp.h],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
AC_CHECK_LIB([seccomp], [seccomp_init],[],[AC_MSG_ERROR([You must install the seccomp development package in order to compile lxc])])
AC_SUBST([SECCOMP_LIBS], [-lseccomp])])
2012-07-27 21:13:53 -05:00
2012-12-11 11:40:02 -06:00
# HAVE_SCMP_FILTER_CTX=1 will tell us we have libseccomp api >= 1.0.0
AC_CHECK_TYPES([scmp_filter_ctx], [], [], [#include <seccomp.h>])
2013-01-08 12:02:52 -05:00
# Configuration examples
2009-11-13 11:48:29 +01:00
AC_ARG_ENABLE([examples],
[AC_HELP_STRING([--disable-examples], [do not install configuration examples])],
[], [enable_examples=yes])
AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
2013-01-08 12:02:52 -05:00
# Python3 module and scripts
2012-08-27 19:04:43 -04:00
AC_ARG_ENABLE([python],
[AC_HELP_STRING([--enable-python], [enable python binding])],
[enable_python=yes], [enable_python=no])
AM_CONDITIONAL([ENABLE_PYTHON], [test "x$enable_python" = "xyes"])
AM_COND_IF([ENABLE_PYTHON],
2013-01-08 12:02:52 -05:00
[AM_PATH_PYTHON([3.2], [], [AC_MSG_ERROR([You must install python3])])
2013-01-10 15:45:22 -05:00
PKG_CHECK_MODULES([PYTHONDEV], [python3 >= 3.2],[],[AC_MSG_ERROR([You must install python3-dev])])
2013-01-08 12:02:52 -05:00
AC_DEFINE_UNQUOTED([ENABLE_PYTHON], 1, [Python3 is available])])
2012-08-27 19:04:43 -04:00
2013-01-24 11:42:22 -05:00
# Lua module and scripts
if test x"$with_distro" = "xdebian" -o x"$with_distro" = "xubuntu" ; then
LUAPKGCONFIG=lua5.1
else
LUAPKGCONFIG=lua
fi
AC_ARG_ENABLE([lua],
[AC_HELP_STRING([--enable-lua], [enable lua binding])],
[enable_lua=yes], [enable_lua=no])
AM_CONDITIONAL([ENABLE_LUA], [test "x$enable_lua" = "xyes"])
AM_COND_IF([ENABLE_LUA],
[PKG_CHECK_MODULES([LUA], [$LUAPKGCONFIG >= 5.1],[],[AC_MSG_ERROR([You must install lua-devel for lua 5.1])])
AC_DEFINE_UNQUOTED([ENABLE_LUA], 1, [Lua is available])])
2013-01-08 12:02:52 -05:00
# Optional test binaries
2012-09-01 19:57:11 -04:00
AC_ARG_ENABLE([tests],
[AC_HELP_STRING([--enable-tests], [build test/example binaries])],
[enable_tests=yes], [enable_tests=no])
AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = "xyes"])
2013-01-08 12:02:52 -05:00
# LXC container path, where the containers are actually stored
2013-02-18 11:52:53 -05:00
# This is overridden by an entry in the file called LXCCONF
2013-02-06 15:11:19 -06:00
# (i.e. /etc/lxc/lxc.conf)
2009-11-17 10:56:23 +01:00
AC_ARG_WITH([config-path],
[AC_HELP_STRING(
[--with-config-path=dir],
2009-12-28 22:10:11 +01:00
[lxc configuration repository path]
2011-09-13 15:08:04 +02:00
)], [], [with_config_path=['${localstatedir}/lib/lxc']])
2009-11-17 10:56:23 +01:00
2013-02-06 15:11:19 -06:00
# The path of the global lxc configuration file.
AC_ARG_WITH([global-conf],
[AC_HELP_STRING(
[--with-global-conf=dir],
[global lxc configuration file]
)], [], [with_global_conf=['${sysconfdir}/lxc/lxc.conf']])
2013-01-08 12:02:52 -05:00
# Rootfs path, where the container mount structure is assembled
2010-05-12 23:44:28 +02:00
AC_ARG_WITH([rootfs-path],
[AC_HELP_STRING(
[--with-rootfs-path=dir],
[lxc rootfs mount point]
2011-09-13 15:08:04 +02:00
)], [], [with_rootfs_path=['${libdir}/lxc/rootfs']])
2010-05-12 23:44:28 +02:00
use a default per-container logfile
Until now, if a lxc-* (i.e. lxc-start) command did not specify a logfile
(with -o logfile), the default was effectively 'none'. With this patch,
the default becomes a per-container log file.
If a container config file specifies 'lxc.logfile', that will override
the default. If a '-o logfile' argument is specifed at lxc-start,
then that will override both the default and the configuration file
entry. Finally, '-o none' can be used to avoid having a logfile at
all (in other words, the previous default), and that will override
a lxc.logfile entry in the container configuration file.
If the user does not have rights to open the default, then 'none' will
be used. However, in that case an error will show up on console. (We
can work on removing that if it annoys people, but I think it is
helpful, at least while we're still ironing this set out) If the user
or container configuration file specified a logfile, and the user does
not have rights to open the default, then the action will fail.
One slight "mis-behavior" which I have not fixed (and may not fix) is
that if a lxc.logfile is specified, the default logfile will still
get created before we read the configuration file to find out there
is a lxc.logfile entry.
changelog: Jan 24:
add --enable-configpath-log configure option
When we log to /var/lib/lxc/$container/$container.log, several things
need to be done differently than when we log into /var/log/lxc (for
instance). So give it a configure option so we know what to do
When the user specifies a logfile, we bail if we can't open it. But
when opening the default logfile, the user may not have rights to
open it, so in that case ignore it and continue as if using 'none'.
When using /var/lib/lxc/$c/$c.log, we use $LOGPATH/$name/$name.log.
Otherwise, we use $LOGPATH/$name.log.
When using /var/lib/lxc/$c/$c.log, don't try to create the log path
/var/lib/lxc/$c. It can only not exist if the container doesn't
exist. We don't want to create the directory in that case. When
using /var/log/lxc, then we do want to create the path if it does
not exist.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2013-01-24 12:04:54 -06:00
# Container log path. By default, use $lxcpath.
AC_MSG_CHECKING([Whether to place logfiles in container config path])
AC_ARG_ENABLE([configpath-log],
[AC_HELP_STRING([--enable-configpath-log], [use logfiles in config path])],
[use_configpath_logs=yes], [use_configpath_logs=no])
AC_MSG_RESULT([$use_configpath_logs])
AM_CONDITIONAL([USE_CONFIGPATH_LOGS], [test "$use_configpath_logs" = "yes"])
if test "$use_configpath_logs" = "yes"; then
default_log_path="${with_config_path}"
else
2013-03-17 23:21:31 +09:00
default_log_path="${localstatedir}/log/lxc"
use a default per-container logfile
Until now, if a lxc-* (i.e. lxc-start) command did not specify a logfile
(with -o logfile), the default was effectively 'none'. With this patch,
the default becomes a per-container log file.
If a container config file specifies 'lxc.logfile', that will override
the default. If a '-o logfile' argument is specifed at lxc-start,
then that will override both the default and the configuration file
entry. Finally, '-o none' can be used to avoid having a logfile at
all (in other words, the previous default), and that will override
a lxc.logfile entry in the container configuration file.
If the user does not have rights to open the default, then 'none' will
be used. However, in that case an error will show up on console. (We
can work on removing that if it annoys people, but I think it is
helpful, at least while we're still ironing this set out) If the user
or container configuration file specified a logfile, and the user does
not have rights to open the default, then the action will fail.
One slight "mis-behavior" which I have not fixed (and may not fix) is
that if a lxc.logfile is specified, the default logfile will still
get created before we read the configuration file to find out there
is a lxc.logfile entry.
changelog: Jan 24:
add --enable-configpath-log configure option
When we log to /var/lib/lxc/$container/$container.log, several things
need to be done differently than when we log into /var/log/lxc (for
instance). So give it a configure option so we know what to do
When the user specifies a logfile, we bail if we can't open it. But
when opening the default logfile, the user may not have rights to
open it, so in that case ignore it and continue as if using 'none'.
When using /var/lib/lxc/$c/$c.log, we use $LOGPATH/$name/$name.log.
Otherwise, we use $LOGPATH/$name.log.
When using /var/lib/lxc/$c/$c.log, don't try to create the log path
/var/lib/lxc/$c. It can only not exist if the container doesn't
exist. We don't want to create the directory in that case. When
using /var/log/lxc, then we do want to create the path if it does
not exist.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2013-01-24 12:04:54 -06:00
fi
AC_ARG_WITH([log-path],
[AC_HELP_STRING(
[--with-log-path=dir],
[per container log path]
)], [], [with_log_path=['${default_log_path}']])
2013-01-08 12:02:52 -05:00
# Expand some useful variables
AS_AC_EXPAND(PREFIX, "$prefix")
AS_AC_EXPAND(LIBDIR, "$libdir")
AS_AC_EXPAND(BINDIR, "$bindir")
AS_AC_EXPAND(LIBEXECDIR, "$libexecdir")
AS_AC_EXPAND(INCLUDEDIR, "$includedir")
AS_AC_EXPAND(SYSCONFDIR, "$sysconfdir")
2013-05-31 16:09:14 +02:00
AS_AC_EXPAND(LXC_DEFAULT_CONFIG, "$sysconfdir/lxc/default.conf")
2013-01-08 12:02:52 -05:00
AS_AC_EXPAND(DATADIR, "$datadir")
AS_AC_EXPAND(LOCALSTATEDIR, "$localstatedir")
AS_AC_EXPAND(DOCDIR, "$docdir")
2013-05-31 16:02:33 +02:00
AS_AC_EXPAND(LXC_DISTRO_CONF, "$distroconf")
2009-11-17 10:56:23 +01:00
AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
2013-01-08 12:02:52 -05:00
AS_AC_EXPAND(LXCPATH, "$with_config_path")
2013-02-06 15:11:19 -06:00
AS_AC_EXPAND(LXC_GLOBAL_CONF, "$with_global_conf")
2013-01-08 12:02:52 -05:00
AS_AC_EXPAND(LXCROOTFSMOUNT, "$with_rootfs_path")
AS_AC_EXPAND(LXCTEMPLATEDIR, "$datadir/lxc/templates")
2013-02-19 15:44:19 -05:00
AS_AC_EXPAND(LXCHOOKDIR, "$datadir/lxc/hooks")
2013-01-08 12:02:52 -05:00
AS_AC_EXPAND(LXCINITDIR, "$libexecdir")
use a default per-container logfile
Until now, if a lxc-* (i.e. lxc-start) command did not specify a logfile
(with -o logfile), the default was effectively 'none'. With this patch,
the default becomes a per-container log file.
If a container config file specifies 'lxc.logfile', that will override
the default. If a '-o logfile' argument is specifed at lxc-start,
then that will override both the default and the configuration file
entry. Finally, '-o none' can be used to avoid having a logfile at
all (in other words, the previous default), and that will override
a lxc.logfile entry in the container configuration file.
If the user does not have rights to open the default, then 'none' will
be used. However, in that case an error will show up on console. (We
can work on removing that if it annoys people, but I think it is
helpful, at least while we're still ironing this set out) If the user
or container configuration file specified a logfile, and the user does
not have rights to open the default, then the action will fail.
One slight "mis-behavior" which I have not fixed (and may not fix) is
that if a lxc.logfile is specified, the default logfile will still
get created before we read the configuration file to find out there
is a lxc.logfile entry.
changelog: Jan 24:
add --enable-configpath-log configure option
When we log to /var/lib/lxc/$container/$container.log, several things
need to be done differently than when we log into /var/log/lxc (for
instance). So give it a configure option so we know what to do
When the user specifies a logfile, we bail if we can't open it. But
when opening the default logfile, the user may not have rights to
open it, so in that case ignore it and continue as if using 'none'.
When using /var/lib/lxc/$c/$c.log, we use $LOGPATH/$name/$name.log.
Otherwise, we use $LOGPATH/$name.log.
When using /var/lib/lxc/$c/$c.log, don't try to create the log path
/var/lib/lxc/$c. It can only not exist if the container doesn't
exist. We don't want to create the directory in that case. When
using /var/log/lxc, then we do want to create the path if it does
not exist.
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2013-01-24 12:04:54 -06:00
AS_AC_EXPAND(LOGPATH, "$with_log_path")
2009-10-22 15:33:40 +02:00
2013-01-08 12:02:52 -05:00
# Check for some standard kernel headers
2012-05-04 00:50:15 +02:00
AC_CHECK_HEADERS([linux/unistd.h linux/netlink.h linux/genetlink.h],
2013-01-08 12:02:52 -05:00
[],
AC_MSG_ERROR([Please install the Linux kernel headers.]),
[#include <sys/socket.h>])
2008-12-09 17:49:21 +00:00
2012-12-20 16:11:03 +01:00
# Allow disabling libcap support
AC_ARG_ENABLE([capabilities],
[AC_HELP_STRING([--disable-capabilities], [disable kernel capabilities])],
[], [enable_capabilities=yes])
2013-01-08 12:02:52 -05:00
# Check for libcap support
2012-12-20 16:11:03 +01:00
if test "x$enable_capabilities" = "xyes"; then
AC_CHECK_LIB(cap,cap_set_proc,caplib=yes,caplib=no)
AC_MSG_CHECKING([linux capabilities])
if test "x$caplib" = "xyes" ; then
CAP_LIBS="-lcap"
AC_MSG_RESULT([$CAP_LIBS])
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([You are missing libcap support. If you really want to build without kernel capabilities, use --disable-capabilities])
fi
2010-05-27 12:17:40 +02:00
else
2012-12-20 16:11:03 +01:00
CAP_LIBS=""
2010-05-27 12:17:40 +02:00
fi
AC_SUBST([CAP_LIBS])
2008-12-09 17:49:21 +00:00
2013-01-08 12:02:51 -05:00
# Check for alternate C libraries
AC_MSG_CHECKING(for bionic libc)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
2013-01-08 12:02:52 -05:00
[[#ifndef __ANDROID__
2013-01-08 12:02:51 -05:00
error: Not bionic!
#endif]])],
2013-01-08 12:02:52 -05:00
[is_bionic=yes],
[is_bionic=no])
2013-01-08 12:02:51 -05:00
if test "x$is_bionic" = "xyes"; then
2013-01-08 12:02:52 -05:00
AC_DEFINE([IS_BIONIC], 1, [bionic libc])
AC_MSG_RESULT([yes])
2013-01-08 12:02:51 -05:00
else
2013-01-08 12:02:52 -05:00
AC_MSG_RESULT([no])
2013-01-08 12:02:51 -05:00
fi
AM_CONDITIONAL([IS_BIONIC], [test "x$is_bionic" = "xyes"])
2009-03-08 17:09:27 +01:00
# Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
2013-01-03 12:24:11 -05:00
# Check for some headers
2013-01-11 12:29:53 -05:00
AC_CHECK_HEADERS([sys/signalfd.h pty.h sys/capability.h sys/personality.h utmpx.h sys/timerfd.h])
2009-02-02 14:50:00 +00:00
2013-01-03 12:24:14 -05:00
# Check for some syscalls functions
AC_CHECK_FUNCS([setns pivot_root sethostname unshare])
2013-01-03 12:24:11 -05:00
# Check for some functions
2013-01-11 15:53:14 -05:00
AC_CHECK_LIB(util, openpty)
2013-01-03 12:24:19 -05:00
AC_CHECK_FUNCS([openpty hasmntopt setmntent endmntent])
2012-12-20 13:46:57 +01:00
AC_CHECK_FUNCS([getline],
AM_CONDITIONAL(HAVE_GETLINE, true)
AC_DEFINE(HAVE_GETLINE,1,[Have getline]),
AM_CONDITIONAL(HAVE_GETLINE, false))
AC_CHECK_FUNCS([fgetln],
AM_CONDITIONAL(HAVE_FGETLN, true)
AC_DEFINE(HAVE_FGETLN,1,[Have fgetln]),
AM_CONDITIONAL(HAVE_FGETLN, false))
2013-02-19 11:36:07 -05:00
# Check for some libraries
AC_SEARCH_LIBS(sem_open, [rt pthread])
2013-02-22 10:55:54 -05:00
AC_SEARCH_LIBS(clock_gettime, [rt])
2013-02-19 11:36:07 -05:00
2013-01-08 12:02:52 -05:00
# Check for some standard binaries
2008-08-06 14:32:29 +00:00
AC_PROG_GCC_TRADITIONAL
2012-09-07 14:53:19 -04:00
AC_PROG_SED
2008-08-06 14:32:29 +00:00
if test "x$GCC" = "xyes"; then
2013-01-08 12:02:52 -05:00
CFLAGS="$CFLAGS -Wall -Werror"
2008-08-06 14:32:29 +00:00
fi
2013-01-08 12:02:52 -05:00
# Files requiring some variable expansion
2008-08-06 14:32:29 +00:00
AC_CONFIG_FILES([
2010-05-12 23:44:28 +02:00
Makefile
2009-06-10 18:21:48 +02:00
lxc.pc
2008-08-06 14:32:29 +00:00
lxc.spec
2010-05-12 23:44:28 +02:00
config/Makefile
2008-11-18 13:45:49 +00:00
2010-05-12 23:44:28 +02:00
doc/Makefile
2013-02-08 18:49:52 -05:00
doc/legacy/lxc-ls.sgml
doc/lxc-attach.sgml
doc/lxc-cgroup.sgml
doc/lxc-checkconfig.sgml
doc/lxc-checkpoint.sgml
2013-02-08 16:58:01 -06:00
doc/lxc-clone.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-console.sgml
2008-11-18 13:45:49 +00:00
doc/lxc-create.sgml
doc/lxc-destroy.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-device.sgml
2008-11-18 13:45:49 +00:00
doc/lxc-execute.sgml
doc/lxc-freeze.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-info.sgml
doc/lxc-kill.sgml
2008-11-18 13:45:49 +00:00
doc/lxc-ls.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-monitor.sgml
doc/lxc-netstat.sgml
2008-11-18 13:45:49 +00:00
doc/lxc-ps.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-restart.sgml
doc/lxc-start-ephemeral.sgml
doc/lxc-start.sgml
doc/lxc-stop.sgml
2013-01-24 11:42:22 -05:00
doc/lxc-top.sgml
2013-02-08 18:49:52 -05:00
doc/lxc-unfreeze.sgml
doc/lxc-unshare.sgml
doc/lxc-version.sgml
doc/lxc-wait.sgml
2008-11-19 16:58:09 +00:00
doc/lxc.conf.sgml
2008-11-20 15:04:09 +00:00
doc/lxc.sgml
2009-05-28 15:32:30 +02:00
doc/common_options.sgml
2009-05-28 15:32:29 +02:00
doc/see_also.sgml
2008-11-18 13:45:49 +00:00
2010-05-27 14:27:13 +02:00
doc/rootfs/Makefile
2009-11-19 15:06:02 +01:00
doc/examples/Makefile
doc/examples/lxc-macvlan.conf
2009-12-15 10:14:27 +01:00
doc/examples/lxc-vlan.conf
2009-11-19 15:06:02 +01:00
doc/examples/lxc-no-netns.conf
doc/examples/lxc-empty-netns.conf
doc/examples/lxc-phys.conf
doc/examples/lxc-veth.conf
2010-01-08 15:19:20 +01:00
doc/examples/lxc-complex.conf
2009-11-19 15:06:02 +01:00
2013-02-19 15:44:19 -05:00
hooks/Makefile
2010-06-07 11:33:55 +02:00
templates/Makefile
2013-05-10 00:52:22 -05:00
templates/lxc-cirros
2010-06-07 11:33:55 +02:00
templates/lxc-debian
2012-12-05 18:51:07 -05:00
templates/lxc-ubuntu
2012-02-09 10:55:33 -06:00
templates/lxc-ubuntu-cloud
2011-07-04 00:35:52 +02:00
templates/lxc-opensuse
2010-06-07 11:33:55 +02:00
templates/lxc-busybox
templates/lxc-fedora
2012-10-05 16:40:21 -05:00
templates/lxc-oracle
2011-08-16 16:00:51 +04:00
templates/lxc-altlinux
2010-06-07 11:33:55 +02:00
templates/lxc-sshd
2011-11-10 09:41:46 +01:00
templates/lxc-archlinux
2012-12-24 17:18:21 +01:00
templates/lxc-alpine
2008-11-28 15:36:51 +00:00
2010-05-12 23:44:28 +02:00
src/Makefile
2008-08-06 14:32:29 +00:00
src/lxc/Makefile
src/lxc/lxc-ps
2008-11-21 18:17:38 +00:00
src/lxc/lxc-netstat
2009-03-24 13:56:37 +01:00
src/lxc/lxc-checkconfig
2009-06-10 18:49:16 +02:00
src/lxc/lxc-version
2012-09-11 17:06:05 -04:00
src/lxc/lxc-start-ephemeral
2012-12-04 12:12:36 -05:00
src/lxc/legacy/lxc-ls
2013-02-06 15:11:19 -06:00
src/lxc/lxc.functions
2008-11-28 15:36:51 +00:00
2012-08-27 19:04:43 -04:00
src/python-lxc/Makefile
2013-01-24 11:42:22 -05:00
src/lua-lxc/Makefile
2012-08-27 18:53:00 -04:00
src/tests/Makefile
2008-08-06 14:32:29 +00:00
])
AC_CONFIG_COMMANDS([default],[[]],[[]])
AC_OUTPUT