X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=configure.ac;h=8684d9c3ece522f63cb2ada96034b250fb2ea4a8;hb=3137a0a63db273005d62973a5d055a7623e98631;hp=55c6c105117552583f9e694300d0a97683edf907;hpb=a631fe4e460802223b9ca1e021c43b6a8f30c01c;p=mirror_lxcfs.git diff --git a/configure.ac b/configure.ac index 55c6c10..8684d9c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,39 +1,164 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) -AC_INIT([lxcfs], [0.5], [lxc-devel@lists.linuxcontainers.org]) +AC_INIT([lxcfs], [3.0.0.beta1], [lxc-devel@lists.linuxcontainers.org]) AC_SUBST(ACLOCAL_AMFLAGS, "-I m4") AC_CONFIG_MACRO_DIR([m4]) +AM_INIT_AUTOMAKE([subdir-objects -Wno-portability]) + AC_GNU_SOURCE AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ Makefile + config/Makefile + config/init/Makefile + config/init/systemd/Makefile + config/init/sysvinit/Makefile + config/init/upstart/Makefile share/Makefile share/00-lxcfs.conf share/lxc.mount.hook + share/lxc.reboot.hook tests/Makefile ]) -AM_INIT_AUTOMAKE - LT_INIT AC_PROG_CC AC_PROG_CC_C99 -PKG_CHECK_MODULES([NIH], [libnih >= 1.0.2]) -PKG_CHECK_MODULES([NIH_DBUS], [libnih-dbus >= 1.0.0]) -PKG_CHECK_MODULES([DBUS], [dbus-1 >= 1.2.16]) -PKG_CHECK_MODULES([CGMANAGER], [libcgmanager >= 0.0.0]) +AC_CHECK_LIB(pthread, main) + PKG_CHECK_MODULES(FUSE, fuse) -AC_CHECK_LIB(cgmanager, cgmanager_list_controllers_sync, [], AC_MSG_ERROR(["cgmanager 0.35 or higher is required"])) -AC_CHECK_LIB(cgmanager, cgmanager_list_keys_sync, [], AC_MSG_ERROR(["cgmanager 0.35 or higher is required"])) AC_PATH_PROG(HELP2MAN, help2man, false // No help2man //) AM_CONDITIONAL([HAVE_HELP2MAN], [test "x$HELP2MAN" != "xfalse // No help2man //" ]) +AC_ARG_WITH([runtime-path], + [AC_HELP_STRING( + [--with-runtime-path=dir], + [runtime directory (default: /run)] + )], [], [with_runtime_path=['/run']]) + +AS_AC_EXPAND(RUNTIME_PATH, "$with_runtime_path") AS_AC_EXPAND(LXCFSSHAREDIR, "$datarootdir/lxcfs") AS_AC_EXPAND(LXCCONFDIR, "$datarootdir/lxc/config/common.conf.d") AS_AC_EXPAND(LXCFSTARGETDIR, "$localstatedir/lib/lxcfs") +# Detect the distribution. This is used for the default configuration and +# for some distro-specific build options. +AC_MSG_CHECKING([host distribution]) +AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO], [Specify the Linux distribution to target: One of redhat, oracle, centos, fedora, suse, gentoo, debian, arch, slackware, paldo, openmandriva or pardus.])) +if type lsb_release >/dev/null 2>&1 && test "z$with_distro" = "z"; then + with_distro=`lsb_release -is` +fi +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/centos-release,with_distro="centos") + 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="openmandriva") + AC_CHECK_FILE(/etc/mandriva-release,with_distro="openmandriva") + AC_CHECK_FILE(/etc/pardus-release,with_distro="pardus") + AC_CHECK_FILE(/etc/pld-release,with_distro="pld") +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) + distroconf=default.conf.ubuntu + ;; + redhat|centos|fedora|oracle|oracleserver|pld) + distroconf=default.conf.libvirt + ;; + *) + distroconf=default.conf.unknown + ;; +esac +AC_MSG_RESULT([$with_distro]) +AM_CONDITIONAL([HAVE_DEBIAN], [test x"$with_distro" = "xdebian" -o x"$with_distro" = "xubuntu"]) +AM_CONDITIONAL([DISTRO_UBUNTU], [test "x$with_distro" = "xubuntu"]) + +# Check for init system type +AC_MSG_CHECKING([for init system type]) +AC_ARG_WITH([init-script], + [AC_HELP_STRING([--with-init-script@<:@=TYPE@<:@,TYPE,...@:>@@:>@], + [Type(s) of init script to install: bsd, openrc, sysvinit, systemd, upstart, + distro @<:@default=distro@:>@])],[],[with_init_script=distro]) +case "$with_init_script" in + distro) + case $with_distro in + fedora) + init_script=systemd + ;; + redhat|centos|oracle|oracleserver) + init_script=sysvinit + ;; + debian) + init_script=upstart,systemd,sysvinit + ;; + ubuntu) + init_script=upstart,systemd,sysvinit + ;; + pld) + init_script=systemd,sysvinit + ;; + slackware) + echo -n "Warning: bsd init job not yet implemented" + init_script= + ;; + gentoo) + echo -n "Warning: openrc init job not yet implemented" + init_script= + ;; + *) + echo -n "Linux distribution init system unknown." + init_script= + ;; + esac + ;; + *) + init_script=$with_init_script + ;; +esac + +# Check valid init systems were given, run in subshell so we don't mess up IFS +(IFS="," ; for init_sys in $init_script; +do + case "$init_sys" in + none|bsd|openrc|sysvinit|systemd|upstart) + ;; + *) + exit 1 + ;; + esac +done) || AC_MSG_ERROR([Unknown init system type in $init_script]) + +AM_CONDITIONAL([INIT_SCRIPT_BSD], [echo "$init_script" |grep -q "bsd"]) +AM_CONDITIONAL([INIT_SCRIPT_OPENRC], [echo "$init_script" |grep -q "openrc"]) +AM_CONDITIONAL([INIT_SCRIPT_SYSV], [echo "$init_script" |grep -q "sysvinit"]) +AM_CONDITIONAL([INIT_SCRIPT_SYSTEMD], [echo "$init_script" |grep -q "systemd"]) +AM_CONDITIONAL([INIT_SCRIPT_UPSTART], [echo "$init_script" |grep -q "upstart"]) +AC_MSG_RESULT($init_script) + +AC_SUBST([lxcfsdir], "${libdir}/lxcfs") + +# Rootfs path, where the container mount structure is assembled +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(LIBDIR, "$libdir") + AC_OUTPUT