]> git.proxmox.com Git - mirror_lxc.git/blobdiff - configure.ac
lxc-0.9.0
[mirror_lxc.git] / configure.ac
index dd5070172e69fe3245c65e0573397fd712ce815d..7dc82cfbcb8db10be6758e5298d3ac93b312feaa 100644 (file)
@@ -1,11 +1,11 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_INIT([lxc], [0.9.0.alpha2])
+AC_INIT([lxc], [0.9.0])
 
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_AUX_DIR([config])
-AM_CONFIG_HEADER([src/config.h])
+AC_CONFIG_HEADERS([src/config.h])
 AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability])
 AC_CANONICAL_HOST
 AM_PROG_CC_C_O
@@ -39,14 +39,14 @@ if test "z$with_distro" = "z"; then
 fi
 case $with_distro in
        ubuntu)
-               conffile=lxc.conf.ubuntu
+               defaultconf=default.conf.ubuntu
                ;;
        redhat|fedora|oracle|oracleserver)
-               conffile=lxc.conf.libvirt
+               defaultconf=default.conf.libvirt
                ;;
        *)
                echo -n "Linux distribution network config unknown, defaulting to lxc.network.type = empty"
-               conffile=lxc.conf.unknown
+               defaultconf=default.conf.unknown
                ;;
 esac
 AC_MSG_RESULT([$with_distro])
@@ -137,6 +137,23 @@ AM_COND_IF([ENABLE_PYTHON],
        PKG_CHECK_MODULES([PYTHONDEV], [python3 >= 3.2],[],[AC_MSG_ERROR([You must install python3-dev])])
        AC_DEFINE_UNQUOTED([ENABLE_PYTHON], 1, [Python3 is available])])
 
+# 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])])
+
 # Optional test binaries
 AC_ARG_ENABLE([tests],
        [AC_HELP_STRING([--enable-tests], [build test/example binaries])],
@@ -144,12 +161,21 @@ AC_ARG_ENABLE([tests],
 AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = "xyes"])
 
 # LXC container path, where the containers are actually stored
+# This is overridden by an entry in the file called LXCCONF
+# (i.e. /etc/lxc/lxc.conf)
 AC_ARG_WITH([config-path],
        [AC_HELP_STRING(
                [--with-config-path=dir],
                [lxc configuration repository path]
        )], [], [with_config_path=['${localstatedir}/lib/lxc']])
 
+# 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']])
+
 # Rootfs path, where the container mount structure is assembled
 AC_ARG_WITH([rootfs-path],
        [AC_HELP_STRING(
@@ -157,6 +183,26 @@ AC_ARG_WITH([rootfs-path],
                [lxc rootfs mount point]
        )], [], [with_rootfs_path=['${libdir}/lxc/rootfs']])
 
+# 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
+       default_log_path="${localstatedir}/log/lxc"
+fi
+
+AC_ARG_WITH([log-path],
+       [AC_HELP_STRING(
+               [--with-log-path=dir],
+               [per container log path]
+       )], [], [with_log_path=['${default_log_path}']])
+
 # Expand some useful variables
 AS_AC_EXPAND(PREFIX, "$prefix")
 AS_AC_EXPAND(LIBDIR, "$libdir")
@@ -167,12 +213,15 @@ AS_AC_EXPAND(SYSCONFDIR, "$sysconfdir")
 AS_AC_EXPAND(DATADIR, "$datadir")
 AS_AC_EXPAND(LOCALSTATEDIR, "$localstatedir")
 AS_AC_EXPAND(DOCDIR, "$docdir")
-AS_AC_EXPAND(LXC_CONFFILE, "$conffile")
+AS_AC_EXPAND(LXC_DEFAULT_CONF, "$defaultconf")
 AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
 AS_AC_EXPAND(LXCPATH, "$with_config_path")
+AS_AC_EXPAND(LXC_GLOBAL_CONF, "$with_global_conf")
 AS_AC_EXPAND(LXCROOTFSMOUNT, "$with_rootfs_path")
 AS_AC_EXPAND(LXCTEMPLATEDIR, "$datadir/lxc/templates")
+AS_AC_EXPAND(LXCHOOKDIR, "$datadir/lxc/hooks")
 AS_AC_EXPAND(LXCINITDIR, "$libexecdir")
+AS_AC_EXPAND(LOGPATH, "$with_log_path")
 
 # Check for some standard kernel headers
 AC_CHECK_HEADERS([linux/unistd.h linux/netlink.h linux/genetlink.h],
@@ -227,6 +276,7 @@ AC_CHECK_HEADERS([sys/signalfd.h pty.h sys/capability.h sys/personality.h utmpx.
 AC_CHECK_FUNCS([setns pivot_root sethostname unshare])
 
 # Check for some functions
+AC_CHECK_LIB(util, openpty)
 AC_CHECK_FUNCS([openpty hasmntopt setmntent endmntent])
 AC_CHECK_FUNCS([getline],
        AM_CONDITIONAL(HAVE_GETLINE, true)
@@ -237,6 +287,10 @@ AC_CHECK_FUNCS([fgetln],
        AC_DEFINE(HAVE_FGETLN,1,[Have fgetln]),
        AM_CONDITIONAL(HAVE_FGETLN, false))
 
+# Check for some libraries
+AC_SEARCH_LIBS(sem_open, [rt pthread])
+AC_SEARCH_LIBS(clock_gettime, [rt])
+
 # Check for some standard binaries
 AC_PROG_GCC_TRADITIONAL
 AC_PROG_SED
@@ -253,28 +307,39 @@ AC_CONFIG_FILES([
        config/Makefile
 
        doc/Makefile
+       doc/legacy/lxc-ls.sgml
+       doc/lxc-attach.sgml
+       doc/lxc-cgroup.sgml
+       doc/lxc-checkconfig.sgml
+       doc/lxc-checkpoint.sgml
+       doc/lxc-clone.sgml
+       doc/lxc-console.sgml
        doc/lxc-create.sgml
        doc/lxc-destroy.sgml
+       doc/lxc-device.sgml
        doc/lxc-execute.sgml
-       doc/lxc-start.sgml
-       doc/lxc-checkpoint.sgml
+       doc/lxc-freeze.sgml
+       doc/lxc-info.sgml
+       doc/lxc-kill.sgml
+       doc/lxc-ls.sgml
+       doc/lxc-monitor.sgml
+       doc/lxc-netstat.sgml
+       doc/lxc-ps.sgml
        doc/lxc-restart.sgml
+       doc/lxc-shutdown.sgml
+       doc/lxc-start-ephemeral.sgml
+       doc/lxc-start.sgml
        doc/lxc-stop.sgml
-       doc/lxc-console.sgml
-       doc/lxc-freeze.sgml
+       doc/lxc-top.sgml
        doc/lxc-unfreeze.sgml
-       doc/lxc-monitor.sgml
+       doc/lxc-unshare.sgml
+       doc/lxc-version.sgml
        doc/lxc-wait.sgml
-       doc/lxc-ls.sgml
-       doc/lxc-ps.sgml
-       doc/lxc-cgroup.sgml
-       doc/lxc-kill.sgml
-       doc/lxc-attach.sgml
+
        doc/lxc.conf.sgml
        doc/lxc.sgml
        doc/common_options.sgml
        doc/see_also.sgml
-       doc/legacy/lxc-ls.sgml
 
        doc/rootfs/Makefile
 
@@ -287,8 +352,9 @@ AC_CONFIG_FILES([
        doc/examples/lxc-veth.conf
        doc/examples/lxc-complex.conf
 
+       hooks/Makefile
+
        templates/Makefile
-       templates/lxc-lenny
        templates/lxc-debian
        templates/lxc-ubuntu
        templates/lxc-ubuntu-cloud
@@ -306,8 +372,6 @@ AC_CONFIG_FILES([
        src/lxc/lxc-ps
        src/lxc/lxc-netstat
        src/lxc/lxc-checkconfig
-       src/lxc/lxc-setcap
-       src/lxc/lxc-setuid
        src/lxc/lxc-version
        src/lxc/lxc-create
        src/lxc/lxc-clone
@@ -315,41 +379,13 @@ AC_CONFIG_FILES([
        src/lxc/lxc-start-ephemeral
        src/lxc/lxc-destroy
        src/lxc/legacy/lxc-ls
+       src/lxc/lxc.functions
 
        src/python-lxc/Makefile
-       src/python-lxc/lxc/__init__.py
-       src/python-lxc/examples/api_test.py
+
+       src/lua-lxc/Makefile
 
        src/tests/Makefile
 ])
 AC_CONFIG_COMMANDS([default],[[]],[[]])
 AC_OUTPUT
-
-
-# Detect missing setcap binary
-AC_CHECK_PROG(SETCAP, setcap, yes, no, $PATH$PATH_SEPARATOR/sbin)
-if test "x$SETCAP" = "xno"; then
-       AC_MSG_NOTICE([
-
-Warning:
---------
-
-The setcap binary was not found. This means the tools to set the
-privilege for the lxc commands are not available, that's ok, but you
-will need to run these commands as root or install libcap-2.
-
-])
-
-else
-
-   AC_MSG_NOTICE([
-
-Advice:
--------
-
-If you wish to have a non root user to use the lxc tools,
-you can add the needed capabilities to the tools by invoking
-the 'lxc-setcap' script. To remove the capabilities, use
-'lxc-setcap -d'.
-])
-fi