mirror of https://gitee.com/openkylin/libvirt.git
444 lines
14 KiB
Plaintext
444 lines
14 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_INIT(src/libvirt.c)
|
|
AM_CONFIG_HEADER(config.h)
|
|
AC_CANONICAL_HOST
|
|
|
|
LIBVIRT_MAJOR_VERSION=0
|
|
LIBVIRT_MINOR_VERSION=3
|
|
LIBVIRT_MICRO_VERSION=0
|
|
LIBVIRT_MICRO_VERSION_SUFFIX=
|
|
LIBVIRT_VERSION=$LIBVIRT_MAJOR_VERSION.$LIBVIRT_MINOR_VERSION.$LIBVIRT_MICRO_VERSION$LIBVIRT_MICRO_VERSION_SUFFIX
|
|
LIBVIRT_VERSION_INFO=`expr $LIBVIRT_MAJOR_VERSION + $LIBVIRT_MINOR_VERSION`:$LIBVIRT_MICRO_VERSION:$LIBVIRT_MINOR_VERSION
|
|
|
|
LIBVIRT_VERSION_NUMBER=`expr $LIBVIRT_MAJOR_VERSION \* 1000000 + $LIBVIRT_MINOR_VERSION \* 1000 + $LIBVIRT_MICRO_VERSION`
|
|
|
|
if test -f CVS/Entries; then
|
|
extra=`grep ChangeLog CVS/Entries | grep -v LIBVIR | sed -e s\%/ChangeLog/1\.%% -e s\%/.*$%%`
|
|
echo extra=$extra
|
|
if test "$extra" != ""
|
|
then
|
|
LIBVIRT_VERSION_EXTRA="-CVS$extra"
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(LIBVIRT_MAJOR_VERSION)
|
|
AC_SUBST(LIBVIRT_MINOR_VERSION)
|
|
AC_SUBST(LIBVIRT_MICRO_VERSION)
|
|
AC_SUBST(LIBVIRT_VERSION)
|
|
AC_SUBST(LIBVIRT_VERSION_INFO)
|
|
AC_SUBST(LIBVIRT_VERSION_NUMBER)
|
|
AC_SUBST(LIBVIRT_VERSION_EXTRA)
|
|
|
|
VERSION=${LIBVIRT_VERSION}
|
|
|
|
AM_INIT_AUTOMAKE(libvirt, $VERSION)
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_PROG_CPP
|
|
AC_PATH_PROG(RM, rm, /bin/rm)
|
|
AC_PATH_PROG(MV, mv, /bin/mv)
|
|
AC_PATH_PROG(TAR, tar, /bin/tar)
|
|
AC_PATH_PROG(XMLLINT, xmllint, /usr/bin/xmllint)
|
|
AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc)
|
|
|
|
dnl Make sure we have an ANSI compiler
|
|
AM_C_PROTOTYPES
|
|
test "x$U" != "x" && AC_MSG_ERROR(Compiler not ANSI compliant)
|
|
|
|
AM_PROG_LIBTOOL
|
|
|
|
AM_PROG_CC_C_O
|
|
|
|
LIBVIRT_COMPILE_WARNINGS(maximum)
|
|
|
|
dnl Availability of various common functions (non-fatal if missing).
|
|
AC_CHECK_FUNCS([regexec])
|
|
|
|
dnl Availability of various common headers (non-fatal if missing).
|
|
AC_CHECK_HEADERS(paths.h)
|
|
|
|
dnl Specific dir for HTML output ?
|
|
AC_ARG_WITH(html-dir, AC_HELP_STRING([--with-html-dir=path],
|
|
[path to base html directory, default $datadir/doc/html]),
|
|
[HTML_DIR=$withval], [HTML_DIR='$(datadir)/doc'])
|
|
|
|
AC_ARG_WITH(html-subdir, AC_HELP_STRING([--with-html-subdir=path],
|
|
[directory used under html-dir, default $PACKAGE-$VERSION/html]),
|
|
[test "x$withval" != "x" && HTML_DIR="$HTML_DIR/$withval"],
|
|
[HTML_DIR="$HTML_DIR/\$(PACKAGE)-\$(VERSION)/html"])
|
|
AC_SUBST(HTML_DIR)
|
|
|
|
dnl Allow to build without Xen, QEMU/KVM, test or remote driver
|
|
AC_ARG_WITH(xen,
|
|
[ --with-xen add XEN support (on)])
|
|
AC_ARG_WITH(qemu,
|
|
[ --with-qemu add QEMU/KVM support (on)])
|
|
AC_ARG_WITH(test,
|
|
[ --with-test add test driver support (on)])
|
|
AC_ARG_WITH(remote,
|
|
[ --with-remote add remote driver support (on)])
|
|
|
|
dnl
|
|
dnl specific tests to setup DV devel environments with debug etc ...
|
|
dnl
|
|
if [[ "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/libvirt" ]] ; then
|
|
STATIC_BINARIES="-static"
|
|
else
|
|
STATIC_BINARIES=
|
|
fi
|
|
AC_SUBST(STATIC_BINARIES)
|
|
|
|
dnl --enable-debug=(yes|no)
|
|
AC_ARG_ENABLE(debug,
|
|
AC_HELP_STRING([--enable-debug=no/yes],
|
|
[enable debugging output]))
|
|
if test x"$enable_debug" = x"yes"; then
|
|
AC_DEFINE(ENABLE_DEBUG, [], [whether debugging is enabled])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([where to write libvirtd PID file])
|
|
AC_ARG_WITH(remote-pid-file, AC_HELP_STRING([--with-remote-pid-file=[pidfile|none]], [PID file for libvirtd]))
|
|
if test "x$with_remote_pid_file" == "x" ; then
|
|
REMOTE_PID_FILE="$localstatedir/run/libvirtd.pid"
|
|
elif test "x$with_remote_pid_file" == "xnone" ; then
|
|
REMOTE_PID_FILE=""
|
|
else
|
|
REMOTE_PID_FILE="$with_remote_pid_file"
|
|
fi
|
|
AC_SUBST(REMOTE_PID_FILE)
|
|
AC_MSG_RESULT($REMOTE_PID_FILE)
|
|
|
|
dnl
|
|
dnl init script flavor
|
|
dnl
|
|
AC_MSG_CHECKING([for init script flavor])
|
|
AC_ARG_WITH(init-script,
|
|
AC_HELP_STRING([--with-init-scripts=[redhat|auto|none]],
|
|
[Style of init scripts to install (defaults to auto)]))
|
|
if test "x$with_init_scripts" = "x" -o "x$with_init_scripts" = "xauto"; then
|
|
if test -f /etc/redhat-release ; then
|
|
with_init_scripts=redhat
|
|
else
|
|
with_init_scripts=none
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(LIBVIRT_INIT_SCRIPTS_RED_HAT, test x$with_init_scripts = xredhat)
|
|
AC_MSG_RESULT($with_init_scripts)
|
|
|
|
dnl
|
|
dnl allow the creation of iptables rules in chains with a
|
|
dnl specific prefix rather than in the standard toplevel chains
|
|
dnl
|
|
AC_ARG_WITH(iptables-prefix,
|
|
AC_HELP_STRING([--with-iptables-prefix=prefix],
|
|
[prefix used for iptables chains, default is to use standard toplevel chains]),
|
|
[IPTABLES_PREFIX=$withval])
|
|
AC_DEFINE_UNQUOTED(IPTABLES_PREFIX, "$IPTABLES_PREFIX", [prefix used for iptables chains])
|
|
|
|
dnl
|
|
dnl also support saving the various chains to files
|
|
dnl in e.g. /etc/sysconfig/iptables.d
|
|
dnl
|
|
AC_ARG_WITH(iptables-dir,
|
|
AC_HELP_STRING([--with-iptables-dir=path],
|
|
[directory used to save iptables chains, defaults to not saving]),
|
|
[IPTABLES_DIR=$withval])
|
|
if test x"$IPTABLES_DIR" != "x"; then
|
|
AC_DEFINE_UNQUOTED(IPTABLES_DIR, "$IPTABLES_DIR", [directory used for saving iptables chains])
|
|
fi
|
|
|
|
AC_PATH_PROG(IPTABLES_PATH, iptables, /sbin/iptables)
|
|
AC_DEFINE_UNQUOTED(IPTABLES_PATH, "$IPTABLES_PATH", [path to iptables binary])
|
|
|
|
dnl
|
|
dnl Specify the xen-distribution directory to be able to compile on a
|
|
dnl non-xenified host
|
|
dnl
|
|
AC_ARG_WITH(xen-distdir, AC_HELP_STRING([--with-xen-distdir=path],
|
|
[distribution directory of Xen, default /usr]))
|
|
if test "x$with_xen_distdir" != "x"
|
|
then
|
|
CPPFLAGS="$CPPFLAGS -I$withval/install/usr/include"
|
|
LDFLAGS="$LDFLAGS -L$withval/install/usr/lib"
|
|
fi
|
|
|
|
dnl
|
|
dnl To be able to make dist on a non-xenified host
|
|
dnl
|
|
AC_ARG_WITH(depends,
|
|
[ --with-depends check for dependancies (on)])
|
|
|
|
LIBVIRT_FEATURES=
|
|
WITH_XEN=0
|
|
|
|
if test "$with_qemu" = "no" ; then
|
|
echo "Disabling QEMU/KVM support"
|
|
else
|
|
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_QEMU"
|
|
fi
|
|
|
|
if test "$with_test" = "no" ; then
|
|
echo "Disabling test driver support"
|
|
else
|
|
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_TEST"
|
|
fi
|
|
|
|
if test "$with_remote" = "no" ; then
|
|
echo "Disabling remote driver support"
|
|
else
|
|
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_REMOTE"
|
|
fi
|
|
|
|
if test "$with_depends" != "no"
|
|
then
|
|
|
|
if test "$with_xen" = "no" ; then
|
|
echo Disabling XEN support
|
|
else
|
|
dnl search for the Xen store library
|
|
AC_SEARCH_LIBS(xs_read, [xenstore],
|
|
[WITH_XEN=1],
|
|
[AC_MSG_RESULT([Xen store library not found])])
|
|
if test "$WITH_XEN" != "0" ; then
|
|
LIBVIRT_FEATURES="$LIBVIRT_FEATURES -DWITH_XEN"
|
|
fi
|
|
fi
|
|
|
|
dnl
|
|
dnl check for kernel headers required by qemud/bridge.c
|
|
dnl
|
|
AC_CHECK_HEADERS(linux/param.h linux/sockios.h linux/if_bridge.h linux/if_tun.h,,
|
|
AC_MSG_ERROR([You must install kernel-headers in order to compile libvirt]))
|
|
|
|
dnl ==========================================================================
|
|
dnl find libxml2 library, borrowed from xmlsec
|
|
dnl ==========================================================================
|
|
LIBXML_MIN_VERSION="2.5.0"
|
|
LIBXML_CONFIG="xml2-config"
|
|
LIBXML_CFLAGS=""
|
|
LIBXML_LIBS=""
|
|
LIBXML_FOUND="no"
|
|
AC_ARG_WITH(libxml, [ --with-libxml=[PFX] libxml2 location])
|
|
if test "z$with_libxml" = "zno" ; then
|
|
AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_MIN_VERSION)
|
|
AC_MSG_ERROR(libxml2 >= $LIBXML_MIN_VERSION is required for $XMLSEC_PACKAGE)
|
|
elif test "z$with_libxml" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then
|
|
PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_MIN_VERSION,
|
|
[LIBXML_FOUND=yes],
|
|
[LIBXML_FOUND=no])
|
|
fi
|
|
AC_MSG_CHECKING(libxml2 $with_libxml $LIBXML_FOUND )
|
|
if test "z$LIBXML_FOUND" = "zno" ; then
|
|
AC_MSG_CHECKING(for libxml2 libraries >= $LIBXML_MIN_VERSION)
|
|
if test "z$with_libxml" != "z" ; then
|
|
LIBXML_CONFIG=$with_libxml/bin/$LIBXML_CONFIG
|
|
fi
|
|
AC_MSG_CHECKING(libxml2 $with_libxml $LIBXML_CONFIG )
|
|
if ! $LIBXML_CONFIG --version > /dev/null 2>&1 ; then
|
|
AC_MSG_ERROR(Could not find libxml2 anywhere (see config.log for details).)
|
|
fi
|
|
vers=`$LIBXML_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
|
minvers=`echo $LIBXML_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
|
|
if test "$vers" -ge "$minvers" ; then
|
|
LIBXML_LIBS="`$LIBXML_CONFIG --libs`"
|
|
LIBXML_CFLAGS="`$LIBXML_CONFIG --cflags`"
|
|
LIBXML_FOUND="yes"
|
|
AC_MSG_RESULT(yes ('$LIBXML_VERSION'))
|
|
else
|
|
AC_MSG_ERROR(You need at least libxml2 $LIBXML_MIN_VERSION for this version of $XMLSEC_PACKAGE)
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(LIBXML_CFLAGS)
|
|
AC_SUBST(LIBXML_LIBS)
|
|
AC_SUBST(LIBXML_CONFIG)
|
|
AC_SUBST(LIBXML_MIN_VERSION)
|
|
|
|
dnl xmlURI structure has query_raw?
|
|
old_cflags="$CFLAGS"
|
|
CFLAGS="$CFLAGS $LIBXML_CFLAGS"
|
|
AC_CHECK_MEMBER(struct _xmlURI.query_raw,
|
|
[AC_DEFINE(HAVE_XMLURI_QUERY_RAW, [], [Have query_raw field in libxml2 xmlURI structure])],,
|
|
[#include <libxml/uri.h>])
|
|
CFLAGS="$old_cflags"
|
|
|
|
dnl GnuTLS library
|
|
AC_CHECK_HEADER([gnutls/gnutls.h],
|
|
[],
|
|
AC_MSG_ERROR([You must install the GnuTLS development package in order to compile libvirt]))
|
|
AC_CHECK_LIB(gnutls, gnutls_handshake,
|
|
[],
|
|
[AC_MSG_ERROR([You must install the GnuTLS library in order to compile and run libvirt])])
|
|
|
|
dnl virsh libraries
|
|
AC_CHECK_LIB(curses, initscr,
|
|
[VIRSH_LIBS="$VIRSH_LIBS -lcurses"],
|
|
[AC_CHECK_LIB(ncurses, initscr,
|
|
[VIRSH_LIBS="$VIRSH_LIBS -lncurses"],
|
|
[AC_MSG_ERROR([curses/ncurses library not found])],
|
|
[$VIRSH_LIBS])],
|
|
[$VIRSH_LIBS])
|
|
AC_CHECK_LIB(readline, main,
|
|
[VIRSH_LIBS="$VIRSH_LIBS -lreadline"],
|
|
[AC_MSG_ERROR([readline library not found])],
|
|
[$VIRSH_LIBS])
|
|
AC_SUBST(VIRSH_LIBS)
|
|
|
|
# end of if with_depends
|
|
fi
|
|
|
|
AC_SUBST(WITH_XEN)
|
|
AC_SUBST(LIBVIRT_FEATURES)
|
|
|
|
dnl
|
|
dnl check for python
|
|
dnl
|
|
|
|
PYTHON_VERSION=
|
|
PYTHON_INCLUDES=
|
|
PYTHON_SITE_PACKAGES=
|
|
PYTHON_TESTS=
|
|
pythondir=
|
|
if test "$with_python" != "no" ; then
|
|
if test -x "$with_python/bin/python"
|
|
then
|
|
echo Found python in $with_python/bin/python
|
|
PYTHON="$with_python/bin/python"
|
|
else
|
|
if test -x "$with_python"
|
|
then
|
|
echo Found python in $with_python
|
|
PYTHON="$with_python"
|
|
else
|
|
if test -x "$PYTHON"
|
|
then
|
|
echo Found python in environment PYTHON=$PYTHON
|
|
with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
|
|
else
|
|
AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
|
|
fi
|
|
fi
|
|
fi
|
|
if test "$PYTHON" != ""
|
|
then
|
|
PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
|
|
echo Found Python version $PYTHON_VERSION
|
|
fi
|
|
if test "$PYTHON_VERSION" != ""
|
|
then
|
|
if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
|
|
-d $with_python/lib/python$PYTHON_VERSION/site-packages
|
|
then
|
|
PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
|
|
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
|
else
|
|
if test -r $prefix/include/python$PYTHON_VERSION/Python.h
|
|
then
|
|
PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
|
|
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
|
else
|
|
if test -r /usr/include/python$PYTHON_VERSION/Python.h
|
|
then
|
|
PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
|
|
PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
|
|
else
|
|
echo could not find python$PYTHON_VERSION/Python.h
|
|
fi
|
|
fi
|
|
if test ! -d "$PYTHON_SITE_PACKAGES"
|
|
then
|
|
PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"`
|
|
fi
|
|
fi
|
|
fi
|
|
if test "$with_python" != ""
|
|
then
|
|
pythondir='$(PYTHON_SITE_PACKAGES)'
|
|
else
|
|
pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
|
|
fi
|
|
else
|
|
PYTHON=
|
|
fi
|
|
AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "")
|
|
if test "$PYTHON_INCLUDES" != ""
|
|
then
|
|
PYTHON_SUBDIR=python
|
|
else
|
|
PYTHON_SUBDIR=
|
|
fi
|
|
AC_SUBST(pythondir)
|
|
AC_SUBST(PYTHON_SUBDIR)
|
|
AC_SUBST(PYTHON_VERSION)
|
|
AC_SUBST(PYTHON_INCLUDES)
|
|
AC_SUBST(PYTHON_SITE_PACKAGES)
|
|
|
|
AC_MSG_CHECKING([whether this host is running a Xen kernel])
|
|
RUNNING_XEN=
|
|
if test -d /proc/sys/xen
|
|
then
|
|
RUNNING_XEN=yes
|
|
else
|
|
RUNNING_XEN=no
|
|
fi
|
|
AC_MSG_RESULT($RUNNING_XEN)
|
|
|
|
AC_MSG_CHECKING([If XenD UNIX socket /var/run/xend/xmlrpc.sock is accessible])
|
|
RUNNING_XEND=
|
|
if test -S /var/run/xend/xmlrpc.sock
|
|
then
|
|
RUNNING_XEND=yes
|
|
else
|
|
RUNNING_XEND=no
|
|
fi
|
|
AC_MSG_RESULT($RUNNING_XEND)
|
|
|
|
AM_CONDITIONAL(ENABLE_XEN_TESTS, [test "$RUNNING_XEN" != "no" -a "$RUNNING_XEND" != "no"])
|
|
|
|
AC_ARG_ENABLE(test-coverage,
|
|
[ --enable-test-coverage turn on code coverage instrumentation],
|
|
[case "${enableval}" in
|
|
yes|no) ;;
|
|
*) AC_MSG_ERROR([bad value ${enableval} for test-coverage option]) ;;
|
|
esac],
|
|
[enableval=no])
|
|
|
|
if test "${enableval}" = yes; then
|
|
gl_COMPILER_FLAGS(-fprofile-arcs)
|
|
gl_COMPILER_FLAGS(-ftest-coverage)
|
|
AC_SUBST([COVERAGE_CFLAGS], [$COMPILER_FLAGS])
|
|
AC_SUBST([COVERAGE_LDFLAGS], [$COMPILER_FLAGS])
|
|
COMPILER_FLAGS=
|
|
fi
|
|
|
|
|
|
AM_GNU_GETTEXT_VERSION([0.14.1])
|
|
AM_GNU_GETTEXT([external])
|
|
if test -d po
|
|
then
|
|
ALL_LINGUAS=`(cd po > /dev/null && ls *.po) | sed 's+\.po$++'`
|
|
else
|
|
ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@Latn sr sv ta te th tr uk ur vi zh_CN zh_TW zu"
|
|
fi
|
|
|
|
# very annoying
|
|
rm -f COPYING
|
|
cp COPYING.LIB COPYING
|
|
|
|
AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
|
|
docs/examples/Makefile docs/devhelp/Makefile \
|
|
docs/examples/python/Makefile \
|
|
libvirt.pc libvirt.spec \
|
|
po/Makefile.in scripts/Makefile \
|
|
include/libvirt/Makefile include/libvirt/libvirt.h \
|
|
python/Makefile python/tests/Makefile \
|
|
qemud/Makefile m4/Makefile \
|
|
tests/Makefile proxy/Makefile \
|
|
tests/xml2sexprdata/Makefile \
|
|
tests/sexpr2xmldata/Makefile \
|
|
tests/xmconfigdata/Makefile \
|
|
tests/xencapsdata/Makefile \
|
|
tests/virshdata/Makefile tests/confdata/Makefile)
|