configure.ac 6.27 KB
Newer Older
1
# Configure script for Ganeti
2
m4_define([gnt_version_major], [2])
3 4
m4_define([gnt_version_minor], [1])
m4_define([gnt_version_revision], [0])
5
m4_define([gnt_version_suffix], [~beta2])
6 7 8 9 10
m4_define([gnt_version_full],
          m4_format([%d.%d.%d%s],
                    gnt_version_major, gnt_version_minor,
                    gnt_version_revision, gnt_version_suffix))

Iustin Pop's avatar
Iustin Pop committed
11
AC_PREREQ(2.59)
12
AC_INIT(ganeti, gnt_version_full, ganeti@googlegroups.com)
13
AC_CONFIG_AUX_DIR(autotools)
Michael Hanselmann's avatar
Michael Hanselmann committed
14
AC_CONFIG_SRCDIR(configure)
15
AM_INIT_AUTOMAKE([1.9 foreign tar-ustar -Wall -Wno-portability])
Iustin Pop's avatar
Iustin Pop committed
16

17 18 19 20 21 22
AC_SUBST([VERSION_MAJOR], gnt_version_major)
AC_SUBST([VERSION_MINOR], gnt_version_minor)
AC_SUBST([VERSION_REVISION], gnt_version_revision)
AC_SUBST([VERSION_SUFFIX], gnt_version_suffix)
AC_SUBST([VERSION_FULL], gnt_version_full)

23 24
# --with-ssh-initscript=...
AC_ARG_WITH([ssh-initscript],
25
  [AS_HELP_STRING([--with-ssh-initscript=SCRIPT],
26 27
    [SSH init script to use (default is /etc/init.d/ssh)]
  )],
28 29 30
  [ssh_initd_script="$withval"],
  [ssh_initd_script="/etc/init.d/ssh"])
AC_SUBST(SSH_INITD_SCRIPT, $ssh_initd_script)
31

32 33 34
# --with-export-dir=...
AC_ARG_WITH([export-dir],
  [AS_HELP_STRING([--with-export-dir=DIR],
35 36
    [directory to use by default for instance image]
    [ exports (default is /srv/ganeti/export)]
37 38 39 40 41
  )],
  [export_dir="$withval"],
  [export_dir="/srv/ganeti/export"])
AC_SUBST(EXPORT_DIR, $export_dir)

42 43 44 45
# --with-os-search-path=...
# do a bit of black sed magic to for quoting of the strings in the list
AC_ARG_WITH([os-search-path],
  [AS_HELP_STRING([--with-os-search-path=LIST],
46 47
    [comma separated list of directories to]
    [ search for OS images (default is /srv/ganeti/os)]
48 49 50 51 52
  )],
  [os_search_path=`echo -n "$withval" | sed -e "s/\([[^,]]*\)/'\1'/g"`],
  [os_search_path="'/srv/ganeti/os'"])
AC_SUBST(OS_SEARCH_PATH, $os_search_path)

53 54 55 56 57 58 59 60 61 62 63
# --with-iallocator-search-path=...
# do a bit of black sed magic to for quoting of the strings in the list
AC_ARG_WITH([iallocator-search-path],
  [AS_HELP_STRING([--with-iallocator-search-path=LIST],
    [comma separated list of directories to]
    [ search for instance allocators (default is $libdir/ganeti/iallocators)]
  )],
  [iallocator_search_path=`echo -n "$withval" | sed -e "s/\([[^,]]*\)/'\1'/g"`],
  [iallocator_search_path="'$libdir/$PACKAGE_NAME/iallocators'"])
AC_SUBST(IALLOCATOR_SEARCH_PATH, $iallocator_search_path)

64 65 66 67 68 69 70 71 72
# --with-xen-bootloader=...
AC_ARG_WITH([xen-bootloader],
  [AS_HELP_STRING([--with-xen-bootloader=PATH],
    [bootloader for Xen hypervisor (default is empty)]
  )],
  [xen_bootloader="$withval"],
  [xen_bootloader=])
AC_SUBST(XEN_BOOTLOADER, $xen_bootloader)

73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
# --with-xen-kernel=...
AC_ARG_WITH([xen-kernel],
  [AS_HELP_STRING([--with-xen-kernel=PATH],
    [DomU kernel image for Xen hypervisor (default is /boot/vmlinuz-2.6-xenU)]
  )],
  [xen_kernel="$withval"],
  [xen_kernel="/boot/vmlinuz-2.6-xenU"])
AC_SUBST(XEN_KERNEL, $xen_kernel)

# --with-xen-initrd=...
AC_ARG_WITH([xen-initrd],
  [AS_HELP_STRING([--with-xen-initrd=PATH],
    [DomU initrd image for Xen hypervisor (default is /boot/initrd-2.6-xenU)]
  )],
  [xen_initrd="$withval"],
  [xen_initrd="/boot/initrd-2.6-xenU"])
AC_SUBST(XEN_INITRD, $xen_initrd)

91 92 93 94 95 96 97 98 99 100
# --with-file-storage-dir=...
AC_ARG_WITH([file-storage-dir],
  [AS_HELP_STRING([--with-file-storage-dir=PATH],
    [directory to store files for file-based backend]
    [ (default is /srv/ganeti/file-storage)]
  )],
  [file_storage_dir="$withval"],
  [file_storage_dir="/srv/ganeti/file-storage"])
AC_SUBST(FILE_STORAGE_DIR, $file_storage_dir)

101 102 103 104 105 106 107 108 109 110
# --with-kvm-path=...
AC_ARG_WITH([kvm-path],
  [AS_HELP_STRING([--with-kvm-path=PATH],
    [absolute path to the kvm binary]
    [ (default is /usr/bin/kvm)]
  )],
  [kvm_path="$withval"],
  [kvm_path="/usr/bin/kvm"])
AC_SUBST(KVM_PATH, $kvm_path)

Guido Trotter's avatar
Guido Trotter committed
111 112 113 114
# --with-socat-path=...
AC_ARG_WITH([socat-path],
  [AS_HELP_STRING([--with-socat-path=PATH],
    [absolute path to the socat binary]
115
    [ (default is to let configure search for it)]
Guido Trotter's avatar
Guido Trotter committed
116
  )],
117 118 119 120 121 122 123 124
  [SOCAT="$withval"],
  [])

AC_ARG_WITH([socat-escape],
  [AS_HELP_STRING([--with-socat-escape],
    [enable escape functionality found in newer socat])],
  [],
  [check_socat_escape=yes])
Guido Trotter's avatar
Guido Trotter committed
125

126 127 128 129
# ---with-lvm-stripecount=...
AC_ARG_WITH([lvm-stripecount],
  [AS_HELP_STRING([--with-lvm-stripecount=NUM],
    [the number of stripes to use for LVM volumes]
Iustin Pop's avatar
Iustin Pop committed
130
    [ (default is 1)]
131 132
  )],
  [lvm_stripecount="$withval"],
Iustin Pop's avatar
Iustin Pop committed
133
  [lvm_stripecount="1"])
134 135
AC_SUBST(LVM_STRIPECOUNT, $lvm_stripecount)

136
# Check common programs
Iustin Pop's avatar
Iustin Pop committed
137
AC_PROG_INSTALL
Michael Hanselmann's avatar
Michael Hanselmann committed
138
AC_PROG_LN_S
Iustin Pop's avatar
Iustin Pop committed
139

140 141 142 143 144
# Check for docbook programs
AC_ARG_VAR(DOCBOOK2MAN, [docbook2man path])
AC_PATH_PROG(DOCBOOK2MAN, [docbook2man], [])
if test -z "$DOCBOOK2MAN"
then
Iustin Pop's avatar
Iustin Pop committed
145
  AC_MSG_WARN([docbook2man not found, man pages rebuild will not be possible])
146 147 148 149 150 151
fi

AC_ARG_VAR(DOCBOOK2HTML, [docbook2html path])
AC_PATH_PROG(DOCBOOK2HTML, [docbook2html], [])
if test -z "$DOCBOOK2HTML"
then
Iustin Pop's avatar
Iustin Pop committed
152
  AC_MSG_WARN([docbook2html not found, man pages rebuild will not be possible])
153 154
fi

155 156 157 158
# Check for python-sphinx
AC_ARG_VAR(SPHINX, [sphinx-build path])
AC_PATH_PROG(SPHINX, [sphinx-build], [])
if test -z "$SPHINX"
Michael Hanselmann's avatar
Michael Hanselmann committed
159
then
160
  AC_MSG_WARN([sphinx-build not found, documentation rebuild will not be possible])
Michael Hanselmann's avatar
Michael Hanselmann committed
161 162
fi

163 164 165 166 167
# Check for graphviz (dot)
AC_ARG_VAR(DOT, [dot path])
AC_PATH_PROG(DOT, [dot], [])
if test -z "$DOT"
then
Iustin Pop's avatar
Iustin Pop committed
168
  AC_MSG_WARN([dot (from the graphviz suite) not found, documentation rebuild not possible])
169 170
fi

171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
if test -z "$SOCAT" -a -n "$check_socat_escape"
then
AC_CACHE_CHECK([for socat with the escape feature], [ac_cv_path_SOCAT],
  [AC_PATH_PROGS_FEATURE_CHECK(SOCAT, [socat],
            [[$ac_path_SOCAT -hh | grep -q escape \
              && ac_cv_path_SOCAT=$ac_path_SOCAT \
                 SOCAT=$ac_cv_path_SOCAT \
                 with_socat_escape=yes ac_path_SOCAT_found=:]],
            [AC_MSG_WARN([no escape feature found])])])
fi

if test -z "$SOCAT"
then
AC_CACHE_CHECK([for socat], [ac_cv_path_SOCAT],
  [AC_PATH_PROGS_FEATURE_CHECK(SOCAT, [socat],
            [[ac_cv_path_SOCAT=$ac_path_SOCAT \
              SOCAT=$ac_cv_path_SOCAT ac_path_SOCAT_found=:]],
            [AC_MSG_ERROR([socat not found])])])
fi

AC_SUBST([SOCAT_PATH], [$SOCAT])
if test "x$with_socat_escape" = xyes
then
  AC_SUBST([SOCAT_ESCAPE], [1])
fi

197
# Check for Python
Iustin Pop's avatar
Iustin Pop committed
198 199
AM_PATH_PYTHON(2.4)

200 201 202
AC_PYTHON_MODULE(OpenSSL, t)
AC_PYTHON_MODULE(simplejson, t)
AC_PYTHON_MODULE(pyparsing, t)
203
AC_PYTHON_MODULE(pyinotify, t)
204

205
AC_CONFIG_FILES([ Makefile ])
Iustin Pop's avatar
Iustin Pop committed
206

Iustin Pop's avatar
Iustin Pop committed
207
AC_OUTPUT