configure.ac 6.58 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
115
116
117
118
119
120
# --with-kvm-migration-port=...
AC_ARG_WITH([kvm-migration-port],
  [AS_HELP_STRING([--with-kvm-migration-port=PORT],
    [tcp port used for kvm instance live migration]
    [ (default is 8102)]
  )],
  [kvm_migration_port="$withval"],
  [kvm_migration_port="8102"])
AC_SUBST(KVM_MIGRATION_PORT, $kvm_migration_port)

Guido Trotter's avatar
Guido Trotter committed
121
122
123
124
# --with-socat-path=...
AC_ARG_WITH([socat-path],
  [AS_HELP_STRING([--with-socat-path=PATH],
    [absolute path to the socat binary]
125
    [ (default is to let configure search for it)]
Guido Trotter's avatar
Guido Trotter committed
126
  )],
127
128
129
130
131
132
133
134
  [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
135

136
137
138
139
# ---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
140
    [ (default is 1)]
141
142
  )],
  [lvm_stripecount="$withval"],
Iustin Pop's avatar
Iustin Pop committed
143
  [lvm_stripecount="1"])
144
145
AC_SUBST(LVM_STRIPECOUNT, $lvm_stripecount)

146
# Check common programs
Iustin Pop's avatar
Iustin Pop committed
147
AC_PROG_INSTALL
Michael Hanselmann's avatar
Michael Hanselmann committed
148
AC_PROG_LN_S
Iustin Pop's avatar
Iustin Pop committed
149

150
151
152
153
154
# 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
155
  AC_MSG_WARN([docbook2man not found, man pages rebuild will not be possible])
156
157
158
159
160
161
fi

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

165
166
167
168
# 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
169
then
170
  AC_MSG_WARN([sphinx-build not found, documentation rebuild will not be possible])
Michael Hanselmann's avatar
Michael Hanselmann committed
171
172
fi

173
174
175
176
177
# 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
178
  AC_MSG_WARN([dot (from the graphviz suite) not found, documentation rebuild not possible])
179
180
fi

181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
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

207
# Check for Python
Iustin Pop's avatar
Iustin Pop committed
208
209
AM_PATH_PYTHON(2.4)

210
211
212
AC_PYTHON_MODULE(OpenSSL, t)
AC_PYTHON_MODULE(simplejson, t)
AC_PYTHON_MODULE(pyparsing, t)
213
AC_PYTHON_MODULE(pyinotify, t)
214

215
AC_CONFIG_FILES([ Makefile ])
Iustin Pop's avatar
Iustin Pop committed
216

Iustin Pop's avatar
Iustin Pop committed
217
AC_OUTPUT