After a server has been modified in the in the connection-specific
[modest] / configure.ac
1 # Copyright (c) 2006,2007 Nokia Corporation
2 # All rights reserved.
3
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
6 # met:
7
8 # * Redistributions of source code must retain the above copyright
9 #   notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above copyright
11 #   notice, this list of conditions and the following disclaimer in the
12 #   documentation and/or other materials provided with the distribution.
13 # * Neither the name of the Nokia Corporation nor the names of its
14 #   contributors may be used to endorse or promote products derived from
15 #   this software without specific prior written permission.
16
17 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
18 # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20 # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21 # OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25 # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 AC_INIT([modest],[1.0],[http://maemo.org])
30 AC_CONFIG_HEADERS([config.h])
31
32 AC_CONFIG_SRCDIR(src/modest-main.c)
33 AM_INIT_AUTOMAKE([dist-bzip2])
34
35 ALL_LINGUAS="en_GB"
36
37 MODEST_LOCALE_DIR='$prefix/${DATADIRNAME}/locale'
38 AM_GLIB_DEFINE_LOCALEDIR([MODEST_LOCALE_DIR])
39 AM_GLIB_GNU_GETTEXT
40
41
42
43 if test x$prefix = xNONE; then
44    prefix=/usr/local
45 fi
46 AC_SUBST(prefix)
47
48 AC_PROG_CC
49 AM_PROG_CC_STDC
50 AC_HEADER_STDC
51 AC_PROG_LIBTOOL
52
53
54 # Option to enable debugging
55 AC_ARG_ENABLE(debug,
56               [AC_HELP_STRING([  --enable-debug],[Debugging (default=no)])],
57               [with_debug=yes], [with_debug=no])
58
59 if test "x$with_debug" == "xyes" ; then
60         CFLAGS="$CFLAGS -ggdb -O0 -DDEBUG -Wall"
61 else
62         CFLAGS="$CFLAGS -O2 -Wall"
63 fi
64
65
66 dnl # GLib/Gobject/Gtk/Gconf => mandatory
67 PKG_CHECK_MODULES(MODEST_GSTUFF,glib-2.0 >= 2.6 gobject-2.0 gtk+-2.0 >= 2.6 gconf-2.0 gnome-vfs-2.0 libgtkhtml-3.8 libtinymail-1.0 libtinymail-camel-1.0 libtinymail-gnomevfs-1.0 libtinymailui-1.0 libtinymailui-gtk-1.0) 
68 AC_SUBST(MODEST_GSTUFF_CFLAGS)
69 AC_SUBST(MODEST_GSTUFF_LIBS)
70
71 __COPY_LIBS="$LIBS"
72 LIBS="$LIBS $MODEST_GSTUFF_LIBS"
73 AC_CHECK_FUNCS(gtk_html_get_selection_area)
74 LIBS="$__COPY_LIBS"
75 AC_SUBST(HAVE_GTK_HTML_GET_SELECTION_AREA)
76
77 dnl dnl now, determine what to build
78 dnl AC_MSG_NOTICE([Determining what platform to build])
79 PKG_CHECK_MODULES(MODEST_MAEMO_LIBS,conic,[detected_platform=maemo],[detected_platform=gnome])
80
81 AC_ARG_WITH(platform, [
82 Target platform:
83   --with-platform=detect  detect target platform (default)
84   --with-platform=gnome   build for Gnome
85   --with-platform=maemo   build for Maemo
86 ],
87 [case "${with_platform}" in
88        gnome|maemo|detect)    MODEST_PLATFORM=${with_platform};;
89        *)        AC_MSG_ERROR([Unknown platform selected]);;
90 esac], [MODEST_PLATFORM=detect])
91
92 if test "$MODEST_PLATFORM" = "detect"; then
93         MODEST_PLATFORM="$detected_platform"
94         with_platform=$detected_platform
95 fi
96
97 have_easysetup=false
98 if test "x$with_platform" == "xgnome"; then
99       PKG_CHECK_MODULES(MODEST_PLATFORM,libtinymail-gnome-desktop-1.0 libnm_glib glib-2.0 >= 2.8 gtk+-2.0 >= 2.10 libnotify)
100     AC_DEFINE_UNQUOTED(MODEST_PLATFORM_GNOME, 1, ["Whether modest is being built for the GNOME platform."])
101 dnl     AC_MSG_ERROR([The GNOME Build is currently broken; please try the Maemo build instead])
102 else
103     have_easysetup=true
104     have_dbusapi=true
105     PKG_CHECK_MODULES(MODEST_PLATFORM,libosso dbus-1 libtinymail-maemo-1.0 libebook-1.2 )
106     AC_DEFINE_UNQUOTED(MODEST_PLATFORM_MAEMO, 1, ["Whether modest is being built for the MAEMO platform."])
107     AC_DEFINE_UNQUOTED(MODEST_HAVE_EASYSETUP, 1, ["Whether we have the easysetup feature"])
108 fi                  
109
110 AM_CONDITIONAL(MODEST_HAVE_EASYSETUP,test "x$have_easysetup" == "xtrue")
111 AM_CONDITIONAL(MODEST_HAVE_DBUS_API,test "x$have_dbusapi" == "xtrue")
112 AC_SUBST(MODEST_PLATFORM)
113
114
115
116
117 #
118 # check for wpeditor or libwpeditor-plus (on maemo)
119 #
120 if test "x$with_platform" == "xmaemo"; then  
121 PKG_CHECK_MODULES(MODEST_WPEDITOR,wpeditor,have_wpeditor=true,have_wpeditor=false)
122 if test "x$have_wpeditor" == "xfalse"; then
123    PKG_CHECK_MODULES(MODEST_WPEDITOR,libwpeditor-plus,have_libwpeditorplus=true,have_libwpeditorplus=false)     
124    if test "x$have_libwpeditorplus" == "xtrue"; then
125         wpeditor="libwpeditor-plus"
126         AC_DEFINE_UNQUOTED(MODEST_HAVE_LIBWPEDITOR_PLUS, 1, ["Whether libwpeditor-plus is used."])              
127    else
128         AC_MSG_ERROR([you need to have either wpeditor or libwpeditor-plus installed])
129    fi
130 else
131    wpeditor="wpeditor"  
132    AC_DEFINE_UNQUOTED(MODEST_HAVE_WPEDITOR, 1, ["Whether wpeditor is used."])           
133 fi
134 fi
135
136
137 #
138 # check libalarm
139 #
140 if test "x$with_platform" == "xmaemo"; then  
141 PKG_CHECK_MODULES(MODEST_LIBALARM,libalarm,have_libalarm=true,have_libalarm=false)
142 if test "x$have_libalarm" == "xtrue"; then
143    libalarm="libalarm"  
144    AC_DEFINE_UNQUOTED(MODEST_HAVE_LIBALARM, 1, ["Whether libalarm is used."])           
145    AC_SUBST(MODEST_LIBALARM_CFLAGS)
146    AC_SUBST(MODEST_LIBALARM_LIBS)
147 else
148    libalarm=""
149 fi
150 fi
151
152
153
154 #
155 # check for libconic; this is a trick to check whether we run
156 # on a 'real' maemo platform, or on, say, ubuntu embedded
157 # this determines whether we build with the non-hildon GTK+
158 #
159 if test "x$with_platform" == "xmaemo"; then  
160 PKG_CHECK_MODULES(MODEST_LIBCONIC,conic,have_libconic=true,have_libconic=false)
161 if test "x$have_libconic" == "xtrue"; then
162    AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_GTK,1,["Whether modest is being built with Hildon/Gtk"])
163    AC_DEFINE_UNQUOTED(MODEST_HAVE_CONIC,1,["Whether modest has conic available"])
164    AC_SUBST(MODEST_LIBCONIC_CLAGS)
165    AC_SUBST(MODEST_LIBCONIC_LIBS)
166 else
167 # if we define this, tinymail will not try to #include conic headers
168    CFLAGS="$CFLAGS -DLIBTINYMAIL_MAEMO_WITHOUT_CONIC"
169 fi
170 fi
171
172 #
173 # check hildon-help (only for maemo)
174 #
175 if test "x$with_platform" == "xmaemo"; then  
176    PKG_CHECK_MODULES(MODEST_HILDON_HELP,hildon-help,have_hildon_help=true,have_hildon_help=false)
177    if test "x$have_hildon_help" == "xfalse"; then
178       PKG_CHECK_MODULES(MODEST_HILDON_HELP,libossohelp,have_osso_help=true,have_osso_help=false)        
179       if test "x$have_osso_help" == "xtrue"; then
180         helplib="osso-help"
181         AC_DEFINE_UNQUOTED(MODEST_HAVE_OSSO_HELP, 1, ["Whether osso-help is used."])            
182       else
183         AC_MSG_ERROR([you need to have either osso-help or hildon-help installed])
184       fi
185    else
186      helplib="hildon-help"      
187      AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_HELP, 1, ["Whether hildon-help is used."])           
188    fi
189 fi
190
191
192
193 #
194 # check for the notification stuff (only maemo)
195 #
196 if test "x$with_platform" == "xmaemo"; then  
197    PKG_CHECK_MODULES(MODEST_HILDON_NOTIFY,hildon-notify libnotify,have_hildon_notify=true,have_hildon_notify=false)
198    if test "x$have_hildon_notify" == "xtrue"; then
199       AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_NOTIFY, 1, ["Whether hildon-notify is available"])      
200    fi
201 fi
202
203
204 #
205 # check for the uri/mime stuff
206 #
207 if test "x$with_platform" == "xmaemo"; then  
208    PKG_CHECK_MODULES(MODEST_HILDON_MIME,libhildonmime,have_hildonmime=true,have_hildonmime=false)
209    if test "x$have_hildonmime" == "xfalse"; then
210       PKG_CHECK_MODULES(MODEST_HILDON_MIME,libossomime,have_ossomime=true,have_ossomime=false)  
211       if test "x$have_ossomime" == "xtrue"; then
212         mimelib="osso-mime"
213         AC_DEFINE_UNQUOTED(MODEST_HAVE_OSSO_MIME, 1, ["Whether osso-mime is used."])            
214       else
215         AC_MSG_ERROR([you need to have either osso-mime or hildon-mime installed])
216       fi
217    else
218      mimelib="hildon-mime"      
219      AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON_MIME, 1, ["Whether hildon-mime is used."])           
220    fi
221 fi
222
223 PKG_CHECK_MODULES(MODEST_MOZEMBED, libtinymailui-mozembed-1.0, have_mozembed=true, have_mozembed=false)
224 AC_ARG_ENABLE(mozembed,
225 AC_HELP_STRING([--enable-mozembed],
226         [Build with GtkMozEmbed (yes, no)]),
227 [case "${enableval}" in
228       yes)
229         if test x$have_mozembed = xfalse; then
230            AC_MSG_ERROR([building of GtkMozEmbed support requested and gtkmozembed not found])
231         fi
232         use_mozembed=true
233         ;;
234       *)
235         use_mozembed=false
236         ;;
237 esac],[use_mozembed=false])
238
239 AM_CONDITIONAL(BUILD_MOZEMBED, test x$use_mozembed = xtrue)
240
241 if test x$use_mozembed = xtrue; then
242         AC_DEFINE_UNQUOTED(MODEST_USE_MOZEMBED, 1, ["Whether we use GtkMozEmbed."])
243 fi
244
245 #dnl wether we can and should build the 
246 #dnl search plugin (on maemo)
247 if test "x$with_platform" == "xmaemo"; then  
248 PKG_CHECK_MODULES(MODEST_OGS, libosso >= 0.8.5 libogs-1.2, have_ogs=true, have_ogs=false)
249 have_ogs_support=false
250 AC_ARG_ENABLE(ogs_support,
251 AC_HELP_STRING([--enable-ogs-support],
252         [Build with osso global search support (yes, no)]),
253 [case "${enableval}" in
254       yes)
255         if test x$have_ogs = xfalse; then
256            AC_MSG_ERROR([building of ogs support requested and libogs-1.2 not found])
257         fi
258         ;;
259       *) 
260         have_ogs_support=false
261         ;;
262 esac],[have_ogs_support=$have_ogs])
263
264 if test x$have_ogs_support = xtrue; then
265         AC_DEFINE_UNQUOTED(MODEST_HAVE_OGS, 1, ["Whether ogs is available."])
266 fi
267 fi
268
269
270
271 #
272 # check the version of the widgets on maemo
273 #
274 if test "x$with_platform" == "xmaemo"; then  
275 PKG_CHECK_MODULES(MODEST_HILDON_WIDGETS, hildon-1 >= 0.9.9 hildon-fm-2, have_hildon1=true,have_hildon1=false)   
276 if test "x$have_hildon1" == "xfalse"; then 
277    PKG_CHECK_MODULES(MODEST_HILDON_WIDGETS, hildon-libs >= 0.12.0 hildon-fm, have_hildon0=true,have_hildon0=false)      
278    if test "x$have_hildon0" == "xtrue"; then
279       AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON0_WIDGETS, 1, ["Whether hildon0 widgets are used."])               
280    else
281       AC_MSG_ERROR([hildon widgets and/or hildon-fm not found])
282    fi
283 else
284       AC_DEFINE_UNQUOTED(MODEST_HAVE_HILDON1_WIDGETS, 1, ["Whether hildon1 widgets are used."])             
285 fi
286 fi
287
288
289
290 #
291 # check the version of the addressbook on maemo
292 #
293 if test "x$with_platform" == "xmaemo"; then  
294    PKG_CHECK_MODULES(MODEST_ABOOK,osso-addressbook-1.0,have_abook=true,have_abook=false)
295    AC_SUBST(MODEST_ABOOK_CFLAGS)
296    AC_SUBST(MODEST_ABOOK_LIBS)
297
298    if test "x$have_abook" == "xtrue"; then      
299       PKG_CHECK_MODULES(MODEST_ABOOK_OLD, osso-addressbook-1.0 < 2.0, have_old_abook=true,have_old_abook=false) 
300       if test "x$have_old_abook" == "xtrue"; then
301          AC_DEFINE_UNQUOTED(MODEST_HAVE_OLD_ABOOK, 1, ["whether we have an old osso-addressbook"])
302       fi
303       AC_DEFINE_UNQUOTED(MODEST_HAVE_ABOOK,1, ["whether we have osso-addressbook"])
304       addressbook="osso-addressbook"
305    fi
306 fi
307
308
309 #
310 # if we don't have an addressbook, use the dummy one
311 #
312 AM_CONDITIONAL(MODEST_USE_DUMMY_ADDRESS_BOOK,test "x$have_abook" != "xtrue")
313
314
315 # gettext support
316 GETTEXT_PACKAGE=modest  
317 AC_SUBST(GETTEXT_PACKAGE)
318 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", ["gettext package"])
319
320
321 #
322 # settings for maemo platform
323 #
324 if test "x$with_platform" == "xmaemo"; then  
325
326   # warnings are errors, but don't check format errors, because
327   # it breaks with logical ids
328   CFLAGS="$CFLAGS -Wno-format-extra-args -Werror"
329
330    desktopentrydir=`$PKG_CONFIG osso-af-settings --variable=desktopentrydir`
331    serviceentrydir=`$PKG_CONFIG dbus-glib-1 --variable=prefix`/share/dbus-1/services
332    localedir=`$PKG_CONFIG osso-af-settings --variable=localedir`
333    backupsettingsdir=/etc/osso-backup/applications
334    pixmapdir=`$PKG_CONFIG osso-af-settings --variable=hildonpixmapdir`
335    icon_26x26dir=$datadir/icons/hicolor/26x26/hildon
336    icon_34x34dir=$datadir/icons/hicolor/34x34/hildon
337    icon_40x40dir=$datadir/icons/hicolor/40x40/hildon
338    icon_50x50dir=$datadir/icons/hicolor/50x50/hildon
339    icon_scalabledir=$datadir/icons/hicolor/scalable/hildon
340    pluginlibdir=`$PKG_CONFIG hildon-control-panel --variable=plugindir`
341    plugindesktopentrydir=`$PKG_CONFIG hildon-control-panel --variable=plugindesktopentrydir`
342
343    dbus_api="dbus_api"
344    AC_SUBST(dbus_api)
345
346    # Define as variables in Makefiles
347    AC_SUBST(desktopentrydir)
348    AC_SUBST(serviceentrydir)
349    AC_SUBST(backupsettingsdir)
350    AC_SUBST(localedir)
351    AC_SUBST(pixmapdir)
352    AC_SUBST(icon_26x26dir)
353    AC_SUBST(icon_34x34dir)
354    AC_SUBST(icon_40x40dir)
355    AC_SUBST(icon_50x50dir)
356    AC_SUBST(icon_scalabledir)
357    AC_SUBST(pluginlibdir)
358    AC_SUBST(plugindesktopentrydir)
359
360 else
361    # gnome frontend 
362    PKG_CHECK_MODULES(MODEST_LIBTINYMAIL_GNOME_DESKTOP,libtinymail-gnome-desktop-1.0 libnm_glib glib-2.0 >= 2.8 gtk+-2.0 >= 2.10 libnotify)
363    AC_SUBST(MODEST_LIBTINYMAIL_GNOME_DESKTOP_CFLAGS)
364    AC_SUBST(MODEST_LIBTINYMAIL_GNOME_DESKTOP_LIBS)  
365    AC_DEFINE_UNQUOTED(MODEST_PLATFORM_GNOME, 1, ["Whether modest is being built for the GNOME platform."])
366
367   # no dbus api for gnome
368   dbus_api=""
369   AC_SUBST(dbus_api)
370
371 fi
372
373
374 dnl ## setup the testing framework (ie., make check)
375 build_tests=false
376 AC_ARG_ENABLE(tests,
377 AC_HELP_STRING([--enable-tests],
378         [Build tests (no, yes)]),
379 [case "${enableval}" in
380       yes)
381         build_tests=true ;;
382       *) build_tests=false ;;
383 esac],[build_tests=false])
384 AM_CONDITIONAL(BUILD_TESTS, test x$build_tests = xtrue)
385
386
387
388 dnl ## is the check package installed?
389 if test x$build_tests = xtrue; then
390    PKG_CHECK_MODULES(CHECK, check >= 0.9.4 glib-2.0)
391 fi
392
393
394
395 dnl ## do we want documentation (gtk-doc)
396 build_docs=false
397 AC_ARG_ENABLE(docs,
398 AC_HELP_STRING([--enable-docs],
399         [Build documentation (yes, no)]),
400 [case "${enableval}" in
401       yes)
402         build_docs=true ;;
403       *) build_docs=false ;;
404 esac],[build_docs=false])
405 AM_CONDITIONAL(BUILD_DOCS, test x$build_docs = xtrue)
406
407 dnl ## gtk-doc
408 GTK_DOC_CHECK([1.0])
409
410 dnl Intltool utility programs
411 #AC_PROG_INTLTOOL([0.33.0],[no-xml])
412
413 AC_OUTPUT([
414 po/Makefile.in
415 Makefile
416 man/Makefile
417 src/Makefile
418 src/dbus_api/Makefile
419 src/gnome/Makefile
420 src/maemo/Makefile
421 src/maemo/easysetup/Makefile
422 src/widgets/Makefile
423 docs/Makefile
424 docs/reference/Makefile
425 tests/Makefile
426 tests/dbus_api/Makefile
427 src/maemo/modest.desktop
428 src/maemo/com.nokia.modest.service
429 libmodest-dbus-client/Makefile
430 libmodest-dbus-client/libmodest-dbus-client-1.0.pc
431 ])
432
433
434 echo
435 echo "modest configure results"
436 echo "-----------------------------------"
437 echo "Platform         : $with_platform"
438 echo "Prefix           : ${prefix}"
439 echo "Build tests      : $build_tests"
440 echo "Build docs       : $build_docs"
441 echo "Gettext Package  : $GETTEXT_PACKAGE"
442
443 if test "x$with_platform" == "xmaemo"; then
444    echo "Editor lib       : $wpeditor"
445    echo "Addressbook      : $have_abook"
446    echo "Help lib         : $helplib"
447    echo "libconic support : $have_libconic"
448    echo "Alarm            : $have_libalarm"
449    echo "Hildon-Notify    : $have_hildon_notify"    
450    echo "LibOGS support   : $have_ogs_support"
451    echo "MozEmbed support : $use_mozembed"
452 fi 
453
454 echo "CFLAGS           : $CFLAGS"
455 echo "Debug version    : $with_debug"
456 echo ""
457 echo "NOTE: you should do a 'make clean' after changing architecture or platform (--with-platform=)"
458 echo ""