root / configure.ac @ 4b5a9365
History | View | Annotate | Download (17.7 kB)
1 |
# Configure script for Ganeti |
---|---|
2 |
m4_define([gnt_version_major], [2]) |
3 |
m4_define([gnt_version_minor], [6]) |
4 |
m4_define([gnt_version_revision], [0]) |
5 |
m4_define([gnt_version_suffix], [~beta1]) |
6 |
m4_define([gnt_version_full], |
7 |
m4_format([%d.%d.%d%s], |
8 |
gnt_version_major, gnt_version_minor, |
9 |
gnt_version_revision, gnt_version_suffix)) |
10 |
|
11 |
AC_PREREQ(2.59) |
12 |
AC_INIT(ganeti, gnt_version_full, ganeti@googlegroups.com) |
13 |
AC_CONFIG_AUX_DIR(autotools) |
14 |
AC_CONFIG_SRCDIR(configure) |
15 |
AM_INIT_AUTOMAKE([1.9 foreign tar-ustar -Wall -Wno-portability]) |
16 |
|
17 |
AC_SUBST([VERSION_MAJOR], gnt_version_major) |
18 |
AC_SUBST([VERSION_MINOR], gnt_version_minor) |
19 |
AC_SUBST([VERSION_REVISION], gnt_version_revision) |
20 |
AC_SUBST([VERSION_SUFFIX], gnt_version_suffix) |
21 |
AC_SUBST([VERSION_FULL], gnt_version_full) |
22 |
|
23 |
# --with-ssh-initscript=... |
24 |
AC_ARG_WITH([ssh-initscript], |
25 |
[AS_HELP_STRING([--with-ssh-initscript=SCRIPT], |
26 |
[SSH init script to use (default is /etc/init.d/ssh)] |
27 |
)], |
28 |
[ssh_initd_script="$withval"], |
29 |
[ssh_initd_script="/etc/init.d/ssh"]) |
30 |
AC_SUBST(SSH_INITD_SCRIPT, $ssh_initd_script) |
31 |
|
32 |
# --with-export-dir=... |
33 |
AC_ARG_WITH([export-dir], |
34 |
[AS_HELP_STRING([--with-export-dir=DIR], |
35 |
[directory to use by default for instance image] |
36 |
[ exports (default is /srv/ganeti/export)] |
37 |
)], |
38 |
[export_dir="$withval"], |
39 |
[export_dir="/srv/ganeti/export"]) |
40 |
AC_SUBST(EXPORT_DIR, $export_dir) |
41 |
|
42 |
# --with-ssh-config-dir=... |
43 |
AC_ARG_WITH([ssh-config-dir], |
44 |
[AS_HELP_STRING([--with-ssh-config-dir=DIR], |
45 |
[ directory with ssh host keys ] |
46 |
[ (default is /etc/ssh)] |
47 |
)], |
48 |
[ssh_config_dir="$withval"], |
49 |
[ssh_config_dir="/etc/ssh"]) |
50 |
AC_SUBST(SSH_CONFIG_DIR, $ssh_config_dir) |
51 |
|
52 |
# --with-os-search-path=... |
53 |
# do a bit of black sed magic to for quoting of the strings in the list |
54 |
AC_ARG_WITH([os-search-path], |
55 |
[AS_HELP_STRING([--with-os-search-path=LIST], |
56 |
[comma separated list of directories to] |
57 |
[ search for OS images (default is /srv/ganeti/os)] |
58 |
)], |
59 |
[os_search_path=`echo -n "$withval" | sed -e "s/\([[^,]]*\)/'\1'/g"`], |
60 |
[os_search_path="'/srv/ganeti/os'"]) |
61 |
AC_SUBST(OS_SEARCH_PATH, $os_search_path) |
62 |
|
63 |
# --with-iallocator-search-path=... |
64 |
# do a bit of black sed magic to for quoting of the strings in the list |
65 |
AC_ARG_WITH([iallocator-search-path], |
66 |
[AS_HELP_STRING([--with-iallocator-search-path=LIST], |
67 |
[comma separated list of directories to] |
68 |
[ search for instance allocators (default is $libdir/ganeti/iallocators)] |
69 |
)], |
70 |
[iallocator_search_path=`echo -n "$withval" | sed -e "s/\([[^,]]*\)/'\1'/g"`], |
71 |
[iallocator_search_path="'$libdir/$PACKAGE_NAME/iallocators'"]) |
72 |
AC_SUBST(IALLOCATOR_SEARCH_PATH, $iallocator_search_path) |
73 |
|
74 |
# --with-xen-bootloader=... |
75 |
AC_ARG_WITH([xen-bootloader], |
76 |
[AS_HELP_STRING([--with-xen-bootloader=PATH], |
77 |
[bootloader for Xen hypervisor (default is empty)] |
78 |
)], |
79 |
[xen_bootloader="$withval"], |
80 |
[xen_bootloader=]) |
81 |
AC_SUBST(XEN_BOOTLOADER, $xen_bootloader) |
82 |
|
83 |
# --with-xen-kernel=... |
84 |
AC_ARG_WITH([xen-kernel], |
85 |
[AS_HELP_STRING([--with-xen-kernel=PATH], |
86 |
[DomU kernel image for Xen hypervisor (default is /boot/vmlinuz-3-xenU)] |
87 |
)], |
88 |
[xen_kernel="$withval"], |
89 |
[xen_kernel="/boot/vmlinuz-3-xenU"]) |
90 |
AC_SUBST(XEN_KERNEL, $xen_kernel) |
91 |
|
92 |
# --with-xen-initrd=... |
93 |
AC_ARG_WITH([xen-initrd], |
94 |
[AS_HELP_STRING([--with-xen-initrd=PATH], |
95 |
[DomU initrd image for Xen hypervisor (default is /boot/initrd-3-xenU)] |
96 |
)], |
97 |
[xen_initrd="$withval"], |
98 |
[xen_initrd="/boot/initrd-3-xenU"]) |
99 |
AC_SUBST(XEN_INITRD, $xen_initrd) |
100 |
|
101 |
# --with-xen-cmd=... |
102 |
AC_ARG_WITH([xen-cmd], |
103 |
[AS_HELP_STRING([--with-xen-cmd=CMD], |
104 |
[Sets the xen cli interface command (default is xm)] |
105 |
)], |
106 |
[xen_cmd="$withval"], |
107 |
[xen_cmd="xm"]) |
108 |
AC_SUBST(XEN_CMD, $xen_cmd) |
109 |
|
110 |
if ! test "$XEN_CMD" = xl -o "$XEN_CMD" = xm; then |
111 |
AC_MSG_ERROR([Unsupported xen command specified]) |
112 |
fi |
113 |
|
114 |
# --with-kvm-kernel=... |
115 |
AC_ARG_WITH([kvm-kernel], |
116 |
[AS_HELP_STRING([--with-kvm-kernel=PATH], |
117 |
[Guest kernel image for KVM hypervisor (default is /boot/vmlinuz-3-kvmU)] |
118 |
)], |
119 |
[kvm_kernel="$withval"], |
120 |
[kvm_kernel="/boot/vmlinuz-3-kvmU"]) |
121 |
AC_SUBST(KVM_KERNEL, $kvm_kernel) |
122 |
|
123 |
# --with-file-storage-dir=... |
124 |
AC_ARG_WITH([file-storage-dir], |
125 |
[AS_HELP_STRING([--with-file-storage-dir=PATH], |
126 |
[directory to store files for file-based backend] |
127 |
[ (default is /srv/ganeti/file-storage)] |
128 |
)], |
129 |
[[file_storage_dir="$withval"; |
130 |
if test "$withval" != no; then |
131 |
enable_file_storage=True |
132 |
else |
133 |
enable_file_storage=False |
134 |
fi |
135 |
]], |
136 |
[[file_storage_dir="/srv/ganeti/file-storage"; |
137 |
enable_file_storage="True"]]) |
138 |
AC_SUBST(FILE_STORAGE_DIR, $file_storage_dir) |
139 |
AC_SUBST(ENABLE_FILE_STORAGE, $enable_file_storage) |
140 |
|
141 |
# --with-shared-file-storage-dir=... |
142 |
AC_ARG_WITH([shared-file-storage-dir], |
143 |
[AS_HELP_STRING([--with-shared-file-storage-dir=PATH], |
144 |
[directory to store files for shared file-based backend] |
145 |
[ (default is /srv/ganeti/shared-file-storage)] |
146 |
)], |
147 |
[[shared_file_storage_dir="$withval"; |
148 |
if test "$withval" != no; then |
149 |
enable_shared_file_storage=True |
150 |
else |
151 |
enable_shared_file_storage=False |
152 |
fi |
153 |
]], |
154 |
[[shared_file_storage_dir="/srv/ganeti/shared-file-storage"; |
155 |
enable_shared_file_storage="True"]]) |
156 |
AC_SUBST(SHARED_FILE_STORAGE_DIR, $shared_file_storage_dir) |
157 |
AC_SUBST(ENABLE_SHARED_FILE_STORAGE, $enable_shared_file_storage) |
158 |
|
159 |
# --with-kvm-path=... |
160 |
AC_ARG_WITH([kvm-path], |
161 |
[AS_HELP_STRING([--with-kvm-path=PATH], |
162 |
[absolute path to the kvm binary] |
163 |
[ (default is /usr/bin/kvm)] |
164 |
)], |
165 |
[kvm_path="$withval"], |
166 |
[kvm_path="/usr/bin/kvm"]) |
167 |
AC_SUBST(KVM_PATH, $kvm_path) |
168 |
|
169 |
# --with-lvm-stripecount=... |
170 |
AC_ARG_WITH([lvm-stripecount], |
171 |
[AS_HELP_STRING([--with-lvm-stripecount=NUM], |
172 |
[the default number of stripes to use for LVM volumes] |
173 |
[ (default is 1)] |
174 |
)], |
175 |
[lvm_stripecount="$withval"], |
176 |
[lvm_stripecount="1"]) |
177 |
AC_SUBST(LVM_STRIPECOUNT, $lvm_stripecount) |
178 |
|
179 |
# --with-user-prefix=... |
180 |
AC_ARG_WITH([user-prefix], |
181 |
[AS_HELP_STRING([--with-user-prefix=PREFIX], |
182 |
[prefix for daemon users] |
183 |
[ (default is to run all daemons as root)] |
184 |
)], |
185 |
[user_masterd="${withval}masterd"; |
186 |
user_rapi="${withval}rapi"; |
187 |
user_confd="${withval}confd"; |
188 |
user_noded="root"], |
189 |
[user_masterd="root"; |
190 |
user_rapi="root"; |
191 |
user_confd="root"; |
192 |
user_noded="root"]) |
193 |
AC_SUBST(MASTERD_USER, $user_masterd) |
194 |
AC_SUBST(RAPI_USER, $user_rapi) |
195 |
AC_SUBST(CONFD_USER, $user_confd) |
196 |
AC_SUBST(NODED_USER, $user_noded) |
197 |
|
198 |
# --with-group-prefix=... |
199 |
AC_ARG_WITH([group-prefix], |
200 |
[AS_HELP_STRING([--with-group-prefix=PREFIX], |
201 |
[prefix for daemon POSIX groups] |
202 |
[ (default is to run all daemons under group root)] |
203 |
)], |
204 |
[group_rapi="${withval}rapi"; |
205 |
group_admin="${withval}admin"; |
206 |
group_confd="${withval}confd"; |
207 |
group_masterd="${withval}masterd"; |
208 |
group_noded="root"; |
209 |
group_daemons="${withval}daemons";], |
210 |
[group_rapi="root"; |
211 |
group_admin="root"; |
212 |
group_confd="root"; |
213 |
group_masterd="root"; |
214 |
group_noded="root"; |
215 |
group_daemons="root"]) |
216 |
AC_SUBST(RAPI_GROUP, $group_rapi) |
217 |
AC_SUBST(ADMIN_GROUP, $group_admin) |
218 |
AC_SUBST(CONFD_GROUP, $group_confd) |
219 |
AC_SUBST(MASTERD_GROUP, $group_masterd) |
220 |
AC_SUBST(NODED_GROUP, $group_noded) |
221 |
AC_SUBST(DAEMONS_GROUP, $group_daemons) |
222 |
|
223 |
# Print the config to the user |
224 |
AC_MSG_NOTICE([Running ganeti-masterd as $group_masterd:$group_masterd]) |
225 |
AC_MSG_NOTICE([Running ganeti-rapi as $user_rapi:$group_rapi]) |
226 |
AC_MSG_NOTICE([Running ganeti-confd as $user_confd:$group_confd]) |
227 |
AC_MSG_NOTICE([Group for daemons is $group_daemons]) |
228 |
AC_MSG_NOTICE([Group for clients is $group_admin]) |
229 |
|
230 |
# --enable-drbd-barriers |
231 |
AC_ARG_ENABLE([drbd-barriers], |
232 |
[AS_HELP_STRING([--enable-drbd-barriers], |
233 |
[enable by default the DRBD barriers functionality (>= 8.0.12) (default: enabled)])], |
234 |
[[if test "$enableval" != no; then |
235 |
DRBD_BARRIERS=n |
236 |
DRBD_NO_META_FLUSH=False |
237 |
else |
238 |
DRBD_BARRIERS=bfd |
239 |
DRBD_NO_META_FLUSH=True |
240 |
fi |
241 |
]], |
242 |
[DRBD_BARRIERS=n |
243 |
DRBD_NO_META_FLUSH=False |
244 |
]) |
245 |
AC_SUBST(DRBD_BARRIERS, $DRBD_BARRIERS) |
246 |
AC_SUBST(DRBD_NO_META_FLUSH, $DRBD_NO_META_FLUSH) |
247 |
|
248 |
# --enable-syslog[=no/yes/only] |
249 |
AC_ARG_ENABLE([syslog], |
250 |
[AS_HELP_STRING([--enable-syslog], |
251 |
[enable use of syslog (default: disabled), one of no/yes/only])], |
252 |
[[case "$enableval" in |
253 |
no) |
254 |
SYSLOG=no |
255 |
;; |
256 |
yes) |
257 |
SYSLOG=yes |
258 |
;; |
259 |
only) |
260 |
SYSLOG=only |
261 |
;; |
262 |
*) |
263 |
SYSLOG= |
264 |
;; |
265 |
esac |
266 |
]], |
267 |
[SYSLOG=no]) |
268 |
|
269 |
if test -z "$SYSLOG" |
270 |
then |
271 |
AC_MSG_ERROR([invalid value for syslog, choose one of no/yes/only]) |
272 |
fi |
273 |
AC_SUBST(SYSLOG_USAGE, $SYSLOG) |
274 |
|
275 |
# --enable-htools |
276 |
HTOOLS= |
277 |
AC_ARG_ENABLE([htools], |
278 |
[AS_HELP_STRING([--enable-htools], |
279 |
[enable use of htools (needs GHC and libraries, default: check)])], |
280 |
[], |
281 |
[enable_htools=check]) |
282 |
|
283 |
# --enable-htools-rapi |
284 |
HTOOLS_RAPI= |
285 |
AC_ARG_ENABLE([htools-rapi], |
286 |
[AS_HELP_STRING([--enable-htools-rapi], |
287 |
[enable use of RAPI in htools (needs curl, default: no)])], |
288 |
[], |
289 |
[enable_htools_rapi=no]) |
290 |
|
291 |
# --enable-htools |
292 |
ENABLE_CONFD= |
293 |
AC_ARG_ENABLE([confd], |
294 |
[AS_HELP_STRING([--enable-confd], |
295 |
[enable the ganeti-confd daemon (default: python, options haskell/python/no)])], |
296 |
[[case "$enableval" in |
297 |
no) |
298 |
enable_confd=False |
299 |
py_confd=False |
300 |
hs_confd=False |
301 |
;; |
302 |
yes|python) |
303 |
enable_confd=True |
304 |
py_confd=True |
305 |
hs_confd=False |
306 |
;; |
307 |
haskell) |
308 |
enable_confd=True |
309 |
py_confd=False |
310 |
hs_confd=True |
311 |
;; |
312 |
*) |
313 |
echo "Invalid value for enable-confd '$enableval'" |
314 |
exit 1 |
315 |
;; |
316 |
esac |
317 |
]], |
318 |
[enable_confd=True;py_confd=True;hs_confd=False]) |
319 |
AC_SUBST(ENABLE_CONFD, $enable_confd) |
320 |
AC_SUBST(PY_CONFD, $py_confd) |
321 |
AC_SUBST(HS_CONFD, $hs_confd) |
322 |
|
323 |
AM_CONDITIONAL([WANT_CONFD], [test x$enable_confd = xTrue]) |
324 |
AM_CONDITIONAL([PY_CONFD], [test x$py_confd = xTrue]) |
325 |
AM_CONDITIONAL([HS_CONFD], [test x$hs_confd = xTrue]) |
326 |
|
327 |
# --with-disk-separator=... |
328 |
AC_ARG_WITH([disk-separator], |
329 |
[AS_HELP_STRING([--with-disk-separator=STRING], |
330 |
[Disk index separator, useful if the default of ':' is handled] |
331 |
[ specially by the hypervisor] |
332 |
)], |
333 |
[disk_separator="$withval"], |
334 |
[disk_separator=":"]) |
335 |
AC_SUBST(DISK_SEPARATOR, $disk_separator) |
336 |
|
337 |
# Check common programs |
338 |
AC_PROG_INSTALL |
339 |
AC_PROG_LN_S |
340 |
|
341 |
# Check for the ip command |
342 |
AC_ARG_VAR(IP_PATH, [ip path]) |
343 |
AC_PATH_PROG(IP_PATH, [ip], []) |
344 |
if test -z "$IP_PATH" |
345 |
then |
346 |
AC_MSG_ERROR([ip command not found]) |
347 |
fi |
348 |
|
349 |
# Check for pandoc |
350 |
AC_ARG_VAR(PANDOC, [pandoc path]) |
351 |
AC_PATH_PROG(PANDOC, [pandoc], []) |
352 |
if test -z "$PANDOC" |
353 |
then |
354 |
AC_MSG_WARN([pandoc not found, man pages rebuild will not be possible]) |
355 |
fi |
356 |
|
357 |
# Check for python-sphinx |
358 |
AC_ARG_VAR(SPHINX, [sphinx-build path]) |
359 |
AC_PATH_PROG(SPHINX, [sphinx-build], []) |
360 |
if test -z "$SPHINX" |
361 |
then |
362 |
AC_MSG_WARN(m4_normalize([sphinx-build not found, documentation rebuild will |
363 |
not be possible])) |
364 |
fi |
365 |
|
366 |
# Check for graphviz (dot) |
367 |
AC_ARG_VAR(DOT, [dot path]) |
368 |
AC_PATH_PROG(DOT, [dot], []) |
369 |
if test -z "$DOT" |
370 |
then |
371 |
AC_MSG_WARN(m4_normalize([dot (from the graphviz suite) not found, |
372 |
documentation rebuild not possible])) |
373 |
fi |
374 |
|
375 |
# Check for pylint |
376 |
AC_ARG_VAR(PYLINT, [pylint path]) |
377 |
AC_PATH_PROG(PYLINT, [pylint], []) |
378 |
if test -z "$PYLINT" |
379 |
then |
380 |
AC_MSG_WARN([pylint not found, checking code will not be possible]) |
381 |
fi |
382 |
|
383 |
# Check for pep8 |
384 |
AC_ARG_VAR(PEP8, [pep8 path]) |
385 |
AC_PATH_PROG(PEP8, [pep8], []) |
386 |
if test -z "$PEP8" |
387 |
then |
388 |
AC_MSG_WARN([pep8 not found, checking code will not be complete]) |
389 |
fi |
390 |
|
391 |
# Check for socat |
392 |
AC_ARG_VAR(SOCAT, [socat path]) |
393 |
AC_PATH_PROG(SOCAT, [socat], []) |
394 |
if test -z "$SOCAT" |
395 |
then |
396 |
AC_MSG_ERROR([socat not found]) |
397 |
fi |
398 |
|
399 |
# Check for qemu-img |
400 |
AC_ARG_VAR(QEMUIMG_PATH, [qemu-img path]) |
401 |
AC_PATH_PROG(QEMUIMG_PATH, [qemu-img], []) |
402 |
if test -z "$QEMUIMG_PATH" |
403 |
then |
404 |
AC_MSG_WARN([qemu-img not found, using ovfconverter will not be possible]) |
405 |
fi |
406 |
|
407 |
if test "$enable_htools" != "no"; then |
408 |
|
409 |
# Check for ghc |
410 |
AC_ARG_VAR(GHC, [ghc path]) |
411 |
AC_PATH_PROG(GHC, [ghc], []) |
412 |
if test -z "$GHC"; then |
413 |
if test "$enable_htools" != "check"; then |
414 |
AC_MSG_FAILURE([ghc not found, htools compilation will not possible]) |
415 |
fi |
416 |
fi |
417 |
|
418 |
# Check for ghc-pkg |
419 |
HTOOLS_MODULES= |
420 |
AC_ARG_VAR(GHC_PKG, [ghc-pkg path]) |
421 |
AC_PATH_PROG(GHC_PKG, [ghc-pkg], []) |
422 |
if test -z "$GHC_PKG"; then |
423 |
if test "$enable_htools" != "check"; then |
424 |
AC_MSG_FAILURE([ghc-pkg not found, htools compilation will not be possible]) |
425 |
fi |
426 |
else |
427 |
# check for modules |
428 |
AC_MSG_NOTICE([checking for required haskell modules]) |
429 |
HTOOLS_NOCURL=-DNO_CURL |
430 |
if test "$enable_htools_rapi" != "no"; then |
431 |
AC_MSG_CHECKING([curl]) |
432 |
GHC_PKG_CURL=$($GHC_PKG latest curl) |
433 |
if test -z "$GHC_PKG_CURL"; then |
434 |
if test "$enable_htools_rapi" = "check"; then |
435 |
AC_MSG_WARN(m4_normalize([The curl library not found, htools will be |
436 |
compiled without RAPI support])) |
437 |
else |
438 |
AC_MSG_FAILURE(m4_normalize([The curl library was not found, but it has |
439 |
been requested])) |
440 |
fi |
441 |
else |
442 |
HTOOLS_NOCURL= |
443 |
fi |
444 |
AC_MSG_RESULT($GHC_PKG_CURL) |
445 |
fi |
446 |
AC_SUBST(GHC_PKG_CURL) |
447 |
AC_SUBST(HTOOLS_NOCURL) |
448 |
AC_MSG_CHECKING([parallel]) |
449 |
GHC_PKG_PARALLEL=$($GHC_PKG --simple-output list 'parallel-3.*') |
450 |
if test -n "$GHC_PKG_PARALLEL" |
451 |
then |
452 |
HTOOLS_PARALLEL3=-DPARALLEL3 |
453 |
else |
454 |
GHC_PKG_PARALLEL=$($GHC_PKG --simple-output list 'parallel-2.*') |
455 |
fi |
456 |
if test -z "$GHC_PKG_PARALLEL" |
457 |
then |
458 |
GHC_PKG_PARALLEL=$($GHC_PKG --simple-output list 'parallel-1.*') |
459 |
fi |
460 |
AC_SUBST(GHC_PKG_PARALLEL) |
461 |
AC_SUBST(HTOOLS_PARALLEL3) |
462 |
AC_MSG_RESULT($GHC_PKG_PARALLEL) |
463 |
AC_MSG_CHECKING([json]) |
464 |
GHC_PKG_JSON=$($GHC_PKG latest json) |
465 |
AC_MSG_RESULT($GHC_PKG_JSON) |
466 |
AC_MSG_CHECKING([network]) |
467 |
GHC_PKG_NETWORK=$($GHC_PKG latest network) |
468 |
AC_MSG_RESULT($GHC_PKG_NETWORK) |
469 |
AC_MSG_CHECKING([QuickCheck 2.x]) |
470 |
GHC_PKG_QUICKCHECK=$($GHC_PKG --simple-output list 'QuickCheck-2.*') |
471 |
AC_MSG_RESULT($GHC_PKG_QUICKCHECK) |
472 |
if test -z "$GHC_PKG_PARALLEL" || test -z "$GHC_PKG_JSON" || \ |
473 |
test -z "$GHC_PKG_NETWORK"; then |
474 |
if test "$enable_htools" != "check"; then |
475 |
AC_MSG_FAILURE(m4_normalize([Required Haskell modules not found, htools |
476 |
compilation disabled])) |
477 |
fi |
478 |
else |
479 |
# we leave the other modules to be auto-selected |
480 |
HTOOLS_MODULES="-package $GHC_PKG_PARALLEL" |
481 |
fi |
482 |
if test -z "$GHC_PKG_QUICKCHECK"; then |
483 |
AC_MSG_WARN(m4_normalize([The QuickCheck 2.x module was not found, |
484 |
you won't be able to run Haskell unittests])) |
485 |
fi |
486 |
fi |
487 |
AC_SUBST(HTOOLS_MODULES) |
488 |
AC_SUBST(GHC_PKG_QUICKCHECK) |
489 |
|
490 |
if test "$enable_htools" != "no"; then |
491 |
if test -z "$GHC" || test -z "$HTOOLS_MODULES"; then |
492 |
AC_MSG_WARN(m4_normalize([Haskell compiler/required libraries not found, |
493 |
htools compilation disabled])) |
494 |
else |
495 |
HTOOLS=yes |
496 |
fi |
497 |
fi |
498 |
AC_SUBST(HTOOLS) |
499 |
|
500 |
# Check for HsColour |
501 |
HTOOLS_APIDOC=no |
502 |
AC_ARG_VAR(HSCOLOUR, [HsColour path]) |
503 |
AC_PATH_PROG(HSCOLOUR, [HsColour], []) |
504 |
if test -z "$HSCOLOUR"; then |
505 |
AC_MSG_WARN(m4_normalize([HsColour not found, htools API documentation will |
506 |
not be generated])) |
507 |
fi |
508 |
|
509 |
# Check for haddock |
510 |
AC_ARG_VAR(HADDOCK, [haddock path]) |
511 |
AC_PATH_PROG(HADDOCK, [haddock], []) |
512 |
if test -z "$HADDOCK"; then |
513 |
AC_MSG_WARN(m4_normalize([haddock not found, htools API documentation will |
514 |
not be generated])) |
515 |
fi |
516 |
if test "$HADDOCK" && test "$HSCOLOUR"; then |
517 |
HTOOLS_APIDOC=yes |
518 |
fi |
519 |
AC_SUBST(HTOOLS_APIDOC) |
520 |
|
521 |
fi # end if enable_htools, define automake conditions |
522 |
|
523 |
if test "$HTOOLS" != "yes" && test "$HS_CONFD" = "True"; then |
524 |
AC_MSG_ERROR(m4_normalize([cannot enable Haskell version of ganeti-confd if |
525 |
htools support is not enabled])) |
526 |
fi |
527 |
|
528 |
AM_CONDITIONAL([WANT_HTOOLS], [test x$HTOOLS = xyes]) |
529 |
AM_CONDITIONAL([WANT_HTOOLSTESTS], [test "x$GHC_PKG_QUICKCHECK" != x]) |
530 |
AM_CONDITIONAL([WANT_HTOOLSAPIDOC], [test x$HTOOLS_APIDOC = xyes]) |
531 |
|
532 |
# Check for fakeroot |
533 |
AC_ARG_VAR(FAKEROOT_PATH, [fakeroot path]) |
534 |
AC_PATH_PROG(FAKEROOT_PATH, [fakeroot], []) |
535 |
if test -z "$FAKEROOT_PATH"; then |
536 |
AC_MSG_WARN(m4_normalize([fakeroot not found, tests that must run as root |
537 |
will not be executed])) |
538 |
fi |
539 |
AM_CONDITIONAL([HAS_FAKEROOT], [test "x$FAKEROOT_PATH" != x]) |
540 |
|
541 |
SOCAT_USE_ESCAPE= |
542 |
AC_ARG_ENABLE([socat-escape], |
543 |
[AS_HELP_STRING([--enable-socat-escape], |
544 |
[use escape functionality available in socat >= 1.7 (default: detect |
545 |
automatically)])], |
546 |
[[if test "$enableval" = yes; then |
547 |
SOCAT_USE_ESCAPE=True |
548 |
else |
549 |
SOCAT_USE_ESCAPE=False |
550 |
fi |
551 |
]]) |
552 |
|
553 |
if test -z "$SOCAT_USE_ESCAPE" |
554 |
then |
555 |
if $SOCAT -hh | grep -w -q escape; then |
556 |
SOCAT_USE_ESCAPE=True |
557 |
else |
558 |
SOCAT_USE_ESCAPE=False |
559 |
fi |
560 |
fi |
561 |
|
562 |
AC_SUBST(SOCAT_USE_ESCAPE) |
563 |
|
564 |
SOCAT_USE_COMPRESS= |
565 |
AC_ARG_ENABLE([socat-compress], |
566 |
[AS_HELP_STRING([--enable-socat-compress], |
567 |
[use OpenSSL compression option available in patched socat builds |
568 |
(see INSTALL for details; default: detect automatically)])], |
569 |
[[if test "$enableval" = yes; then |
570 |
SOCAT_USE_COMPRESS=True |
571 |
else |
572 |
SOCAT_USE_COMPRESS=False |
573 |
fi |
574 |
]]) |
575 |
|
576 |
if test -z "$SOCAT_USE_COMPRESS" |
577 |
then |
578 |
if $SOCAT -hhh | grep -w -q openssl-compress; then |
579 |
SOCAT_USE_COMPRESS=True |
580 |
else |
581 |
SOCAT_USE_COMPRESS=False |
582 |
fi |
583 |
fi |
584 |
|
585 |
AC_SUBST(SOCAT_USE_COMPRESS) |
586 |
|
587 |
if man --help | grep -q -e --warnings |
588 |
then |
589 |
MAN_HAS_WARNINGS=1 |
590 |
else |
591 |
MAN_HAS_WARNINGS= |
592 |
AC_MSG_WARN(m4_normalize([man does not support --warnings, man page checks |
593 |
will not be possible])) |
594 |
fi |
595 |
|
596 |
AC_SUBST(MAN_HAS_WARNINGS) |
597 |
|
598 |
# Check for Python |
599 |
AM_PATH_PYTHON(2.4) |
600 |
|
601 |
AC_PYTHON_MODULE(OpenSSL, t) |
602 |
AC_PYTHON_MODULE(simplejson, t) |
603 |
AC_PYTHON_MODULE(pyparsing, t) |
604 |
AC_PYTHON_MODULE(pyinotify, t) |
605 |
AC_PYTHON_MODULE(pycurl, t) |
606 |
AC_PYTHON_MODULE(affinity) |
607 |
|
608 |
# This is optional but then we've limited functionality |
609 |
AC_PYTHON_MODULE(paramiko) |
610 |
if test "$HAVE_PYMOD_PARAMIKO" = "no"; then |
611 |
AC_MSG_WARN(m4_normalize([You do not have Paramiko installed. While this is |
612 |
optional you have to configure SSH and the node |
613 |
daemon on the joining nodes yourself.])) |
614 |
fi |
615 |
|
616 |
AC_CONFIG_FILES([ Makefile ]) |
617 |
|
618 |
AC_OUTPUT |