Statistics
| Branch: | Tag: | Revision:

root / configure.ac @ 73b0fa69

History | View | Annotate | Download (17.1 kB)

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