X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=configure.ac;h=66f0cf2daa7b266cce8ced267e278e462f8b8839;hb=6f10b99323ba640d53590695b29fa793e2f5e882;hp=4ed972ef9a9f85d1cd110562ae4e6cd4bb419d52;hpb=9b1c8e53eaa6fb79ee801e3014793618b977857d;p=ocaml-libvirt.git diff --git a/configure.ac b/configure.ac index 4ed972e..66f0cf2 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ # ocaml-libvirt -# Copyright (C) 2007-2008 Red Hat Inc., Richard W.M. Jones +# Copyright (C) 2007-2015 Red Hat Inc., Richard W.M. Jones # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -17,7 +17,7 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(ocaml-libvirt,0.4.2.1) +AC_INIT(ocaml-libvirt,0.6.1.4) dnl Check for basic C environment. AC_PROG_CC @@ -47,6 +47,12 @@ AC_SUBST(WARNINGS) AC_SUBST(CFLAGS_FPIC) AC_SUBST(WIN32) +dnl Check for perl (required). +AC_CHECK_PROG([PERL],[perl],[perl],[no]) +if test "x$PERL" = "xno"; then + AC_MSG_ERROR([Perl must be installed to build]) +fi + dnl Check for libvirt development environment. AC_ARG_WITH(libvirt, AC_HELP_STRING([--with-libvirt=PATH],[Set path to installed libvirt]), @@ -67,328 +73,25 @@ AC_CHECK_HEADER([libvirt/virterror.h], [], AC_MSG_ERROR([You must install libvirt development package])) -dnl Check for libvirt >= 0.2.1 (our minimum supported version). -dnl See: http://libvirt.org/hvsupport.html -AC_CHECK_FUNC(virConnectGetCapabilities, - [], - AC_MSG_ERROR([You must have libvirt >= 0.2.1])) - -dnl Check for optional libvirt functions added since 0.2.1. -dnl See: http://libvirt.org/hvsupport.html -AC_CHECK_FUNCS([virConnectGetHostname \ - virConnectGetURI \ - virDomainBlockStats \ - virDomainGetSchedulerParameters \ - virDomainGetSchedulerType \ - virDomainInterfaceStats \ - virDomainMigrate \ - virDomainSetSchedulerParameters \ - virNodeGetFreeMemory \ - virNodeGetCellsFreeMemory \ - virStoragePoolGetConnect \ - virConnectNumOfStoragePools \ - virConnectListStoragePools \ - virConnectNumOfDefinedStoragePools \ - virConnectListDefinedStoragePools \ - virStoragePoolLookupByName \ - virStoragePoolLookupByUUID \ - virStoragePoolLookupByUUIDString \ - virStoragePoolLookupByVolume \ - virStoragePoolCreateXML \ - virStoragePoolDefineXML \ - virStoragePoolBuild \ - virStoragePoolUndefine \ - virStoragePoolCreate \ - virStoragePoolDestroy \ - virStoragePoolDelete \ - virStoragePoolFree \ - virStoragePoolRefresh \ - virStoragePoolGetName \ - virStoragePoolGetUUID \ - virStoragePoolGetUUIDString \ - virStoragePoolGetInfo \ - virStoragePoolGetXMLDesc \ - virStoragePoolGetAutostart \ - virStoragePoolSetAutostart \ - virStoragePoolNumOfVolumes \ - virStoragePoolListVolumes \ - virStorageVolLookupByName \ - virStorageVolLookupByKey \ - virStorageVolLookupByPath \ - virStorageVolGetName \ - virStorageVolGetKey \ - virStorageVolCreateXML \ - virStorageVolDelete \ - virStorageVolFree \ - virStorageVolGetInfo \ - virStorageVolGetXMLDesc \ - virStorageVolGetPath \ -]) - -# This jobs API was never published and is due to get overhauled -# in the near future: -# virJobGetInfo -# virJobGetDomain -# virJobGetNetwork -# virJobCancel -# virJobFree -# virDomainCreateLinuxJob -# virDomainSaveJob -# virDomainRestoreJob -# virDomainCoreDumpJob -# virDomainCreateJob -# virNetworkCreateXMLJob -# virNetworkCreateJob - -dnl Check for optional types added since 0.2.1. -AC_CHECK_TYPES([virJobPtr, virStoragePoolPtr, virStorageVolPtr],,, - [#include ]) - -dnl Check for optional ncurses. -AC_CHECK_LIB(ncurses,initscr) - -dnl Check for optional GNOME icons (from gnome-icon-theme package). -AC_ARG_WITH(icons, - AC_HELP_STRING([--with-icons=PATH], - [Set path to installed icons @<:@default=/usr/share/icons@:>@]), - [],[with_icons=/usr/share/icons]) -icons="" -if test "x$with_icons" != "xno"; then - for size in 16 24 32 48; do - for f in devices/computer.png; do - fname="${with_icons}/gnome/${size}x${size}/${f}" - AC_MSG_CHECKING([checking for icon $fname]) - if test -f "$fname"; then - AC_MSG_RESULT([yes]) - icons="$size $f $fname $icons" - else - AC_MSG_RESULT([no]) - fi - done - done -fi -AC_SUBST(with_icons) -AC_SUBST(icons) - dnl Check for basic OCaml environment & findlib. -dnl Note that findlib is not necessary, but things will work better -dnl if it is present. AC_PROG_OCAML AC_PROG_FINDLIB -if test "x$OCAMLFIND" != "x"; then - dnl Use ocamlfind to find the required packages ... - - dnl Check for required OCaml packages. - AC_CHECK_OCAML_PKG(unix) - if test "x$pkg_unix" != "xyes"; then - AC_MSG_ERROR([Cannot find required OCaml package 'unix']) - fi - - dnl Check for optional OCaml packages. - AC_CHECK_OCAML_PKG(extlib) - AC_CHECK_OCAML_PKG(lablgtk2) - AC_CHECK_OCAML_PKG(curses) - AC_CHECK_OCAML_PKG(gettext) - AC_CHECK_OCAML_PKG(xml-light) - AC_CHECK_OCAML_PKG(csv) - AC_CHECK_OCAML_PKG(dbus) - AC_CHECK_OCAML_PKG(gettext) - AC_CHECK_OCAML_PKG(bitmatch) - - dnl Need to check which version of calendar is installed. - AC_CHECK_OCAML_MODULE(calendar,pkg_calendar2,CalendarLib.Date,[+calendar]) - if test "x$pkg_calendar2" = "xno"; then - AC_CHECK_OCAML_PKG(calendar) - fi - - AC_SUBST(pkg_unix) - AC_SUBST(pkg_extlib) - AC_SUBST(pkg_lablgtk2) - AC_SUBST(pkg_curses) - AC_SUBST(pkg_gettext) - AC_SUBST(pkg_xml_light) - AC_SUBST(pkg_csv) - AC_SUBST(pkg_dbus) - AC_SUBST(pkg_gettext) - AC_SUBST(pkg_calendar) - AC_SUBST(pkg_calendar2) -else - dnl Use a basic module test if there is no findlib ... - - dnl Check for required OCaml modules. - AC_CHECK_OCAML_MODULE(unix,pkg_unix,Unix,[.]) - if test "x$pkg_unix" = "xno"; then - AC_MSG_ERROR([Cannot find required OCaml package 'unix']) - fi - - dnl Check for optional OCaml modules. - AC_CHECK_OCAML_MODULE(extlib,pkg_extlib,ExtString,[+extlib]) - AC_CHECK_OCAML_MODULE(lablgtk2,pkg_lablgtk2,GMain,[+lablgtk2]) - AC_CHECK_OCAML_MODULE(curses,pkg_curses,Curses,[+curses]) - AC_CHECK_OCAML_MODULE(gettext,pkg_gettext,Gettext,[+gettext]) dnl XXX - AC_CHECK_OCAML_MODULE(xml-light,pkg_xml_light,Xml,[+xml-light]) - AC_CHECK_OCAML_MODULE(csv,pkg_csv,Csv,[+csv]) - AC_CHECK_OCAML_MODULE(dbus,pkg_dbus,DBus,[+dbus]) - AC_CHECK_OCAML_MODULE(gettext,pkg_gettext,Gettext,[+gettext]) - AC_CHECK_OCAML_MODULE(bitmatch,pkg_bitmatch,Bitmatch,[+bitmatch]) - dnl XXX Version check - see above. - AC_CHECK_OCAML_MODULE(calendar,pkg_calendar,Calendar,[+calendar]) +if test "x$OCAMLFIND" = "x"; then + AC_MSG_ERROR([OCaml findlib is required]) fi -dnl Which subpackages (== subdirs) will we build? -subdirs="libvirt examples mlvirsh" -if test "x$pkg_lablgtk2" != "xno"; then - subdirs="$subdirs virt-ctrl" -fi -if test "x$pkg_extlib" != "xno" -a "x$pkg_curses" != "xno"; then - subdirs="$subdirs virt-top" -fi -if test "x$pkg_extlib" != "xno" \ - -a "x$pkg_xml_light" != "xno" \ - -a "x$pkg_bitmatch" != "xno"; then - subdirs="$subdirs virt-df" -fi -AC_SUBST(subdirs) - -dnl Check for optional perldoc (for building manual pages). -AC_CHECK_PROG(HAVE_PERLDOC,perldoc,perldoc) - -dnl Check for optional gdk-pixbuf-mlsource (for icons). -AC_CHECK_PROG(HAVE_GDK_PIXBUF_MLSOURCE,gdk-pixbuf-mlsource,gdk-pixbuf-mlsource) - -dnl Check for recommended ocaml-gettext tool. -AC_CHECK_PROG(OCAML_GETTEXT,ocaml-gettext,ocaml-gettext) - -dnl Check for optional NSIS (for building a Windows installer). -AC_ARG_WITH([nsis], - [AS_HELP_STRING([--with-nsis], - [use NSIS to build a Windows installer])], - [], - [with_nsis=no]) +dnl Use ocamlfind to find the required packages ... -MAKENSIS= -LIBVIRT_DLL_PATH= -LIBXDR_DLL_PATH= -LIBXML2_DLL_PATH= -GNUTLS_DLL_PATH= -GTK_PATH= -GTK_DLL_PATH= - -[ -msys_to_win_dir () { - eval pushd "\$$1" > /dev/null - eval $1=`pwd -W` - popd > /dev/null -} -] - -if test "x$with_nsis" != "xno"; then - AC_PATH_PROG(MAKENSIS,makensis,[],[$with_nsis:$PATH]) - if test "x$MAKENSIS" = "x"; then - AC_MSG_FAILURE([--with-nsis was given, but could not find MAKENSIS.EXE]) - fi - - # MAKENSIS is set so we will build a rule for making a Windows - # installer. To support this, generate wininstaller.nsis. - saved_IFS=$IFS - IFS=$PATH_SEPARATOR - for d in $PATH; do - IFS=$saved_IFS - echo Checking $d for DLLs ... >&5 - if test -f "$d/libvirt-0.dll"; then - LIBVIRT_DLL_PATH="$d" - fi - if test -f "$d/libxdr.dll"; then - LIBXDR_DLL_PATH="$d" - fi - if test -f "$d/libxml2-2.dll"; then - LIBXML2_DLL_PATH="$d" - fi - if test -f "$d/libgpg-error-0.dll"; then - GNUTLS_DLL_PATH="$d" - fi - if test -f "$d/libgtk-win32-2.0-0.dll"; then - GTK_DLL_PATH="$d" - GTK_PATH="$d/.." - fi - done - IFS=$saved_IFS - - if test "x$LIBVIRT_DLL_PATH" = "x"; then - AC_MSG_FAILURE([cannot find libvirt-0.dll in PATH]) - fi - if test "x$LIBXDR_DLL_PATH" = "x"; then - AC_MSG_FAILURE([cannot find libxdr.dll in PATH]) - fi - if test "x$LIBXML2_DLL_PATH" = "x"; then - AC_MSG_FAILURE([cannot find libxml2-2.dll in PATH]) - fi - if test "x$GNUTLS_DLL_PATH" = "x"; then - AC_MSG_FAILURE([cannot find GnuTLS DLLs in PATH]) - fi - if test "x$GTK_DLL_PATH" = "x"; then - AC_MSG_WARN([cannot find GTK DLLs in PATH]) - fi - - # Change the paths to Windows paths. - msys_to_win_dir LIBVIRT_DLL_PATH - msys_to_win_dir LIBXDR_DLL_PATH - msys_to_win_dir LIBXML2_DLL_PATH - msys_to_win_dir GNUTLS_DLL_PATH - if test "x$GTK_DLL_PATH" != "x"; then - msys_to_win_dir GTK_DLL_PATH - msys_to_win_dir GTK_PATH - fi +dnl Check for required OCaml packages. +AC_CHECK_OCAML_PKG(unix) +if test "x$pkg_unix" != "xyes"; then + AC_MSG_ERROR([Cannot find required OCaml package 'unix']) fi -AC_SUBST(MAKENSIS) -AC_SUBST(LIBVIRT_DLL_PATH) -AC_SUBST(LIBXDR_DLL_PATH) -AC_SUBST(LIBXML2_DLL_PATH) -AC_SUBST(GNUTLS_DLL_PATH) -AC_SUBST(GTK_DLL_PATH) -AC_SUBST(GTK_PATH) - -dnl Write gettext modules for the programs. -dnl http://www.le-gall.net/sylvain+violaine/documentation/ocaml-gettext/html/reference-manual/ch03s04.html -for d in mlvirsh virt-ctrl virt-df virt-top; do - f=`echo $d | tr - _`_gettext.ml - AC_MSG_NOTICE([creating $d/$f]) - rm -f $d/$f - echo "(* This file is generated automatically by ./configure. *)" > $d/$f - if test "x$pkg_gettext" != "xno"; then - # Gettext module is available, so use it. - cat <>$d/$f -module Gettext = Gettext.Program ( - struct - let textdomain = "$d" - let codeset = None - let dir = None - let dependencies = [[]] - end -) (GettextStub.Native) -EOT - else - # No gettext module is available, so fake the translation functions. - cat <>$d/$f -module Gettext = struct - external s_ : string -> string = "%identity" - external f_ : ('a -> 'b, 'c, 'd) format -> ('a -> 'b, 'c, 'd) format - = "%identity" - let sn_ : string -> string -> int -> string - = fun s p n -> if n = 1 then s else p - let fn_ : ('a -> 'b, 'c, 'd) format -> ('a -> 'b, 'c, 'd) format -> int - -> ('a -> 'b, 'c, 'd) format - = fun s p n -> if n = 1 then s else p -end -EOT - fi -done dnl Summary. echo "------------------------------------------------------------" echo "Thanks for downloading" $PACKAGE_STRING -echo " subpackages to build : $subdirs" echo "------------------------------------------------------------" dnl Produce output files. @@ -397,15 +100,7 @@ AC_CONFIG_FILES([META libvirt/libvirt_version.ml Makefile Make.rules - po/Makefile libvirt/Makefile examples/Makefile - mlvirsh/Makefile - virt-ctrl/Makefile - virt-top/Makefile - virt-df/Makefile ]) -if test "x$MAKENSIS" != "x"; then - AC_CONFIG_FILES([wininstaller.nsis]) -fi AC_OUTPUT