]> git.proxmox.com Git - mirror_lxc.git/blobdiff - configure.ac
lxc-0.7.4
[mirror_lxc.git] / configure.ac
index 6370492779b7792e51e754660ce8b0573c952ffb..9e6548694bdfae1d5b3c20859d5cc709bffd06e3 100644 (file)
@@ -1,7 +1,7 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_INIT([lxc], [0.6.2])
+AC_INIT([lxc], [0.7.4])
 
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_AUX_DIR([config])
@@ -10,29 +10,79 @@ AM_INIT_AUTOMAKE([-Wno-portability])
 AC_CANONICAL_HOST
 AM_PROG_CC_C_O
 AC_GNU_SOURCE
-AC_PROG_LIBTOOL
 AC_CHECK_PROG(SETCAP, setcap, yes, no, $PATH$PATH_SEPARATOR/sbin)
-AC_CHECK_PROG(DOCBOOK, docbook2man, yes, no)
-AM_CONDITIONAL(ENABLE_DOCBOOK, test x$DOCBOOK = xyes)
+
+AC_ARG_ENABLE([doc],
+       [AC_HELP_STRING([--enable-doc], [make mans (require docbook2man installed) [default=auto]])],
+       [], [enable_doc=auto])
+
+if test "x$enable_doc" = "xyes" -o "x$enable_doc" = "xauto"; then
+       AC_CHECK_PROG(have_docbook, [docbook2man], [yes], [no])
+
+       test "x$have_docbook" = "xno" -a "x$enable_doc" = "xyes" && \
+               AC_MSG_ERROR([docbook2man required by man request, but not found])
+fi
+
+AM_CONDITIONAL([ENABLE_DOCBOOK], [test "x$have_docbook" = "xyes"])
+
+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"])
+
 AS_AC_EXPAND(PREFIX, $prefix)
 AS_AC_EXPAND(LIBDIR, $libdir)
 AS_AC_EXPAND(BINDIR, $bindir)
 AS_AC_EXPAND(INCLUDEDIR, $includedir)
-AS_AC_EXPAND(LIBEXECDIR, $libexecdir)
 AS_AC_EXPAND(SYSCONFDIR, $sysconfdir)
 AS_AC_EXPAND(DATADIR, $datadir)
 AS_AC_EXPAND(LOCALSTATEDIR, $localstatedir)
-AS_AC_EXPAND(LXCPATH, "${localstatedir}/lib/lxc")
+AS_AC_EXPAND(DOCDIR, $docdir)
+
+AC_ARG_WITH([config-path],
+       [AC_HELP_STRING(
+               [--with-config-path=dir],
+               [lxc configuration repository path]
+       )], [], [with_config_path="${localstatedir}/lib/lxc"])
+
+AC_ARG_WITH([rootfs-path],
+       [AC_HELP_STRING(
+               [--with-rootfs-path=dir],
+               [lxc rootfs mount point]
+       )], [], [with_rootfs_path="${libdir}/lxc/rootfs"])
+
 AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
 
-AC_CHECK_HEADERS([linux/netlink.h linux/genetlink.h], [], AC_MSG_ERROR([netlink headers not found]),
-[#include <linux/types.h>
-#include <bits/sockaddr.h>
-#include <linux/socket.h>])
+AS_AC_EXPAND(LXCPATH, "${with_config_path}")
+AS_AC_EXPAND(LXCROOTFSMOUNT, "${with_rootfs_path}")
+AS_AC_EXPAND(LXCINITDIR, $libdir/lxc)
+AS_AC_EXPAND(LXCTEMPLATEDIR, $libdir/lxc/templates)
+AH_TEMPLATE([LXCPATH], [lxc configuration repository])
+AH_TEMPLATE([LXCINITDIR], [lxc-init directory location])
+AH_TEMPLATE([LXCROOTFSMOUNT], [lxc default rootfs mount point])
+AC_DEFINE_UNQUOTED(LXCPATH, "$LXCPATH")
+AC_DEFINE_UNQUOTED(LXCINITDIR, "$LXCINITDIR")
+AC_DEFINE_UNQUOTED(LXCROOTFSMOUNT, "$LXCROOTFSMOUNT")
+
+AC_CHECK_HEADERS([linux/netlink.h linux/genetlink.h],
+                                 [],
+                                 AC_MSG_ERROR([netlink headers not found. Please install the linux kernel headers.]),
+                                 [#include <sys/socket.h>
+                ])
 
 AC_CHECK_HEADERS([sys/capability.h], [], AC_MSG_ERROR([please install libcap-devel.]),
 [#include <sys/types.h>
 #include <sys/capability.h>])
+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_ERROR([not found])
+fi
+AC_SUBST([CAP_LIBS])
 
 # Some systems lack PR_CAPBSET_DROP definition => HAVE_DECL_PR_CAPBSET_DROP
 AC_CHECK_DECLS([PR_CAPBSET_DROP], [], [], [#include <sys/prctl.h>])
@@ -41,38 +91,25 @@ AC_CHECK_HEADERS([sys/signalfd.h])
 
 AC_PROG_GCC_TRADITIONAL
 
+AC_LINUX
+
 if test "x$GCC" = "xyes"; then
   CFLAGS="$CFLAGS -Wall"
 fi
 
-LXC_MAJOR_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f1)
-LXC_MINOR_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f2)
-LXC_MICRO_VERSION=$(echo $PACKAGE_VERSION | cut -d. -f3)
-
-AC_ARG_WITH([kernel-release],
- [AC_HELP_STRING([--with-kernel-release=RELEASE],
-               [specify the "uname -r"-value to build for])],
-       [KERNEL_RELEASE="${withval}"],
-       [KERNEL_RELEASE=`uname -r`])
-
-AC_ARG_ENABLE(test, [  --enable-test    compile test program [default=no]],, enable_test=no)
-AM_CONDITIONAL(ENABLE_TEST, test x$enable_test = xyes)
-
-AC_SUBST(LXC_MAJOR_VERSION)
-AC_SUBST(LXC_MINOR_VERSION)
-AC_SUBST(LXC_MICRO_VERSION)
-
 AC_CONFIG_FILES([
-        Makefile
+       Makefile
        lxc.pc
        lxc.spec
-        config/Makefile
+       config/Makefile
 
-        doc/Makefile
+       doc/Makefile
        doc/lxc-create.sgml
        doc/lxc-destroy.sgml
        doc/lxc-execute.sgml
        doc/lxc-start.sgml
+       doc/lxc-checkpoint.sgml
+       doc/lxc-restart.sgml
        doc/lxc-stop.sgml
        doc/lxc-console.sgml
        doc/lxc-freeze.sgml
@@ -82,59 +119,58 @@ AC_CONFIG_FILES([
        doc/lxc-ls.sgml
        doc/lxc-ps.sgml
        doc/lxc-cgroup.sgml
+       doc/lxc-kill.sgml
        doc/lxc.conf.sgml
        doc/lxc.sgml
        doc/common_options.sgml
        doc/see_also.sgml
 
-       scripts/Makefile
-       scripts/lxc-debian
-       scripts/lxc-fedora
-       scripts/lxc-sshd
-
-        src/Makefile
+       doc/rootfs/Makefile
+
+       doc/examples/Makefile
+       doc/examples/lxc-macvlan.conf
+       doc/examples/lxc-vlan.conf
+       doc/examples/lxc-no-netns.conf
+       doc/examples/lxc-empty-netns.conf
+       doc/examples/lxc-phys.conf
+       doc/examples/lxc-veth.conf
+       doc/examples/lxc-complex.conf
+
+       templates/Makefile
+       templates/lxc-lenny
+       templates/lxc-debian
+       templates/lxc-lucid
+       templates/lxc-maverick
+       templates/lxc-natty
+       templates/lxc-busybox
+       templates/lxc-fedora
+       templates/lxc-sshd
+
+       src/Makefile
        src/lxc/Makefile
        src/lxc/lxc-ps
        src/lxc/lxc-ls
        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-destroy
 
-       etc/Makefile
-       etc/lxc-macvlan.conf
-       etc/lxc-no-netns.conf
-       etc/lxc-empty-netns.conf
-       etc/lxc-phys.conf
-       etc/lxc-veth.conf
-       etc/lxc-complex-config
-
-       test/Makefile
 ])
 AC_CONFIG_COMMANDS([default],[[]],[[]])
 AC_OUTPUT
 
-if test "x$DOCBOOK" = "xno"; then
-   AC_MSG_NOTICE([
-
-Warning:
---------
-The docbook tool is not installed, the man pages won't be generated.
-If you want the man pages, install docbook and rerun 'configure'.
-
-])
-
-fi
-
 if test "x$SETCAP" = "xno"; then
    AC_MSG_NOTICE([
 
 Warning:
 --------
 
-The libcap-2 is not installed. That 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
+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.
 
 ])
 
@@ -145,10 +181,10 @@ else
 Advice:
 -------
 
-If you which to have a non root user to use the lxc tools,
+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'
+'lxc-setcap -d'.
 ])
 
 fi