mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-27 19:11:16 +00:00
src/Makefile.am src/libvirt.c src/qemu_internal.c src/test.c src/xen_internal.c src/xen_internal.h src/xend_internal.c src/xm_internal.c src/xml.c src/xs_internal.c tests/Makefile.am tests/sexpr2xmltest.c tests/xmconfigtest.c: allow selective compilation of Xen,QEmu/KVM and test support in or out at configure time. Also allows to compile on a system without Xen development installed. All drivers are selected by default. Daniel
431 lines
14 KiB
Plaintext
431 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=2
|
|
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
|
|
|
|
LIBVIRT_COMPILE_WARNINGS(maximum)
|
|
|
|
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 or test 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)])
|
|
|
|
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
|
|
|
|
dnl
|
|
dnl PID file
|
|
dnl
|
|
AC_MSG_CHECKING([where to write libvirt_qemud PID file])
|
|
AC_ARG_WITH(qemud-pid-file, AC_HELP_STRING([--with-qemud-pid-file=[pidfile|none]], [PID file for libvirt_qemud]))
|
|
if test "x$with_qemud_pid_file" == "x" ; then
|
|
QEMUD_PID_FILE="$localstatedir/run/libvirt_qemud.pid"
|
|
elif test "x$with_qemud_pid_file" == "xnone" ; then
|
|
QEMUD_PID_FILE=""
|
|
else
|
|
QEMUD_PID_FILE="$with_qemud_pid_file"
|
|
fi
|
|
AC_DEFINE_UNQUOTED(QEMUD_PID_FILE, "$QEMUD_PID_FILE", [PID file path for qemud])
|
|
AC_MSG_RESULT($QEMUD_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_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 libsyfs (>= 2.0.0); allow disabling bridge parameters support altogether
|
|
dnl
|
|
AC_ARG_ENABLE(bridge-params,
|
|
AC_HELP_STRING([--disable-bridge-params],
|
|
[disable support for setting bridge parameters using libsysfs [default=no]]),,
|
|
enable_bridge_params=yes)
|
|
|
|
if test x"$enable_bridge_params" == "xyes"; then
|
|
AC_CHECK_LIB(sysfs, sysfs_open_device,
|
|
[AC_CHECK_HEADER(sysfs/libsysfs.h,
|
|
AC_DEFINE(ENABLE_BRIDGE_PARAMS, , [enable setting bridge parameters using libsysfs])
|
|
SYSFS_LIBS="-lsysfs" AC_SUBST(SYSFS_LIBS),
|
|
AC_MSG_ERROR([You must install libsysfs in order to compile libvirt]))])
|
|
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 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/virshdata/Makefile tests/confdata/Makefile)
|