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