1dnl -*- mode: m4 -*- 2dnl follow section 5.3 of Autoconf, Automake book. 3dnl 4dnl 1. Boilerplate. 5dnl 6AC_PREREQ(2.59) 7dnl ########################################################################### 8dnl Boilerplace and versioning 9dnl ########################################################################### 10 11# if autoconf is used not in a git source tree, use version=2.5.0 12AC_INIT([balsa], 13 m4_esyscmd([test -d .git && echo -n `git describe --tags` || echo -n 2.5.1]), 14 []) 15 16AM_INIT_AUTOMAKE 17AC_LANG([C]) 18# Automake-1.11 option for less verbose output 19# configure --disable-silent-rules to restore verbose 20m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) 21 22AC_CONFIG_SRCDIR([src/main.c]) 23AC_CONFIG_MACRO_DIR([m4]) 24AC_CONFIG_HEADERS([config.h]) 25AC_DEFINE_UNQUOTED(BALSA_VERSION, "AC_PACKAGE_VERSION",[Defines the Balsa version]) 26 27AC_SYS_LARGEFILE 28 29dnl ##################################################################### 30dnl 2. Options 31dnl ##################################################################### 32AC_ARG_WITH([gnome], 33 AC_HELP_STRING([--with-gnome], 34 [Use GNOME libraries (default=yes)]),[ 35 with_gnome=$withval 36],[ 37 with_gnome=yes 38]) 39 40dnl ########################################################################### 41dnl Configure locking 42dnl ########################################################################### 43 44AC_ARG_ENABLE(flock, 45 AC_HELP_STRING([--enable-flock], 46 [Do NOT use flock() to lock files (default=no)]), 47 [if test x$enableval = xno; then balsa_cv_flock=no; fi]) 48 49if test x$balsa_cv_flock = xyes; then 50 AC_DEFINE(USE_FLOCK,1,[Define if flock locking should be used.]) 51fi 52 53balsa_cv_fcntl=yes 54AC_ARG_ENABLE(fcntl, 55 AC_HELP_STRING([--disable-fcntl], 56 [Use fcntl() to lock files (default=yes)]), 57 [if test x$enableval = no; then balsa_cv_fcntl=no; fi]) 58if test x$balsa_cv_fcntl = xyes; then 59 AC_DEFINE(USE_FCNTL,1,[Define if fcntl locking should be used.]) 60fi 61 62AC_ARG_ENABLE(threads, 63 AC_HELP_STRING([--enable-threads], 64 [Use threading for mail retrieval (default=yes)]),[ 65 use_threads=$enableval 66],[ 67 use_threads=yes 68]) 69 70if test x"$use_threads" = xyes; then 71 AC_DEFINE(BALSA_USE_THREADS, 1,[Defined when balsa is to use threads.]) 72fi 73 74AC_ARG_ENABLE(debug-threads, 75 AC_HELP_STRING([--enable-debug-threads], 76 [Debug threads (default=no)]),[ 77 debug_threads=$enableval 78],[ 79 debug_threads=no 80]) 81 82if test x"$debug_threads" = xyes; then 83 AC_DEFINE(BALSA_DEBUG_THREADS, 1,[Defined to debug threads.]) 84fi 85 86 87AC_ARG_WITH([gpgme], 88 AC_HELP_STRING([--with-gpgme=gpgme-config], 89 [build with gpgme/GnuPG support (default=no, path to gpgme-config optional)]), 90 [ gpgmecfg=$withval ], [ gpgmecfg=no ]) 91AC_ARG_ENABLE([smime], 92 AC_HELP_STRING([--enable-smime], 93 [include S/MIME support (needs gpgme and gpgsm, experimental for gpg < 2.0.4)]), 94 [ have_smime=$enableval ], [ have_smime=check ]) 95AC_ARG_WITH([gpg-app], 96 AC_HELP_STRING([--with-gpg-app=PATH], 97 [use PATH as GnuPG application (default=gpg2 if >= 2.0.4, otherwise gpg 1.x)]), 98 [ gpgapp=$withval ], [ gpgapp=no ]) 99 100 101 102AC_ARG_WITH(canberra, 103 AC_HELP_STRING([--with-canberra], 104 [Use libcanberra-gtk3 for filter sounds (default=no)]), 105 [with_canberra=$withval],[with_canberra=no]) 106 107AC_ARG_WITH(compface, 108 AC_HELP_STRING([--with-compface], 109 [Enable Compface (default=no)]), 110 [with_compface=$withval],[with_compface=no]) 111 112AC_ARG_WITH(esmtp, 113 AC_HELP_STRING([--with-esmtp=DIR], 114 [Enable libESMTP (default=yes)]), 115 [ with_esmtp=$withval ],[ with_esmtp=yes ]) 116 117AC_ARG_ENABLE([gregex], 118 AC_HELP_STRING([--enable-gregex], 119 [Use GRegex regular expressions if available (default=no)]), 120 [ check_gregex=$enableval],[ check_gregex=no ]) 121 122AC_ARG_WITH(gss, 123 AC_HELP_STRING([--with-gss], 124 [Enable GSS (default=no)]), 125 [with_gss=$withval],[with_gss=no]) 126 127AC_ARG_WITH(html-widget, 128 AC_HELP_STRING([--with-html-widget=(no|gtkhtml2|gtkhtml4|webkit|webkit2)], 129 [select the HTML renderer (default webkit)]), 130 [use_html_widget=$withval], 131 [use_html_widget=webkit]) 132 133AC_ARG_WITH([gtksourceview], 134 AC_HELP_STRING([--with-gtksourceview], 135 [Use GtkSourceView-3 if available (default=no)]), 136 [with_gtksourceview=$withval],[with_gtksourceview=no]) 137 138AC_ARG_WITH([gtkspell], 139 AC_HELP_STRING([--with-gtkspell], 140 [Use GtkSpell/enchant if available (default=no)]), 141 [with_gtkspell=$withval],[with_gtkspell=no]) 142 143AC_ARG_WITH(iconv, 144 AC_HELP_STRING([--with-iconv=DIR], 145 [Where libiconv is installed]), 146 [if test "$with_iconv" != yes -a "$with_iconv" != no ; then 147 CPPFLAGS="-I${with_iconv}/include $CPPFLAGS" 148 LDFLAGS="-liconv -L${with_iconv}/lib $LDFLAGS" 149 fi]) 150 151AC_ARG_WITH([ldap], 152 AC_HELP_STRING([--with-ldap=DIR], 153 [Use OpenLDAP if available (default=no)]), 154 [with_ldap=$withval],[with_ldap=no]) 155 156AC_ARG_WITH([libnotify], 157 AC_HELP_STRING([--with-libnotify], 158 [Use libnotify if available (default=yes)]), 159 [with_libnotify=$withval],[with_libnotify=yes]) 160 161AC_ARG_WITH([macosx-desktop], 162 AC_HELP_STRING([--with-macosx-desktop], 163 [Use Mac OS X Desktop Integration (default=no, extremely experimental)]), 164 [use_igemacint=$withval],[use_igemacint=no]) 165 166AC_ARG_WITH(nm, 167 AC_HELP_STRING([--with-nm], 168 [Enable NetworkManager (default=yes)]), 169 [with_nm=$withval],[with_nm=yes]) 170 171AC_ARG_ENABLE([pcre], 172 AC_HELP_STRING([--enable-pcre], 173 [Use Perl-compatible regular expressions if available (default=no)]), 174 [ check_pcre=$enableval],[ check_pcre=no ]) 175 176 177AC_ARG_WITH([rubrica], 178 AC_HELP_STRING([--with-rubrica], 179 [add Rubrica2 address book support (needs libxml2, default=no)]), 180 [with_rubrica=$withval],[with_rubrica=no]) 181 182AC_ARG_WITH([sqlite], 183 AC_HELP_STRING([--with-sqlite=DIR], 184 [Use SQLite for GPE address books (default=no)]), 185 [with_sqlite=$withval],[with_sqlite=no]) 186 187AC_ARG_WITH(ssl, 188 AC_HELP_STRING([--with-ssl], 189 [Enable SSL (default=no)]), 190 [ with_ssl=$withval ],[ with_ssl=no ]) 191 192AC_ARG_WITH(gmime, 193 AC_HELP_STRING([--with-gmime], 194 [Version of GMime 2.4, or 2.6 (default=detect)]), 195 [with_gmime=$withval],[with_gmime=detect]) 196 197AC_ARG_WITH(libsecret, 198 AC_HELP_STRING([--with-libsecret], 199 [Link to libsecret instead of gnome-keyring (default=no)]), 200 [with_libsecret=$withval],[with_libsecret=no]) 201 202AC_ARG_ENABLE(more-warnings, 203 AC_HELP_STRING([--enable-more-warnings], 204 [Enable maximum compiler warnings (default=yes)]), 205 [set_more_warnings="$enableval"], [set_more_warnings=yes]) 206 207 208dnl ########################################################################## 209dnl Enable touchscreen optimized UI? 210dnl ########################################################################## 211 212AC_ARG_ENABLE(touch-ui, 213 AC_HELP_STRING([--enable-touch-ui], 214 [Enable Touchscreen UI mode (default=no)]), 215 [enable_touch_ui="$enableval"],[enable_touch_ui=no]) 216 217dnl ##################################################################### 218dnl 3. Programs: compilers and their options. 219dnl ##################################################################### 220AC_PROG_CC 221m4_ifdef([AM_PROG_LIBTOOL],[AM_PROG_LIBTOOL],[AC_PROG_RANLIB]) 222AC_PROG_LN_S 223 224# pkg-config 225# 226AC_PATH_PROG(PKG_CONFIG, pkg-config, no) 227 228# yelp 229# 230AC_MSG_CHECKING([for Yelp tool]) 231YELPTOOL=`which yelp-build 2>/dev/null` 232if test -z $YELPTOOL; then 233 AC_MSG_RESULT([no]) 234 echo "*** The tools to build the documentation are not found." 235 echo " To build it, please install the yelp-tools package." 236 echo " Continuing with configure. ****" 237 AM_CONDITIONAL([HAVE_YELPTOOL], [false]) 238else 239 AC_MSG_RESULT([yes]) 240 YELP_HELP_INIT 241 AM_CONDITIONAL([HAVE_YELPTOOL], [true]) 242fi 243 244# glib-genmarshal 245# 246AC_SUBST(GLIB_GENMARSHAL) 247GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0` 248 249# gettext 250# 251ALL_LINGUAS="am ar az bg ca cs da de dz el en_CA en_GB es et eu fi fr ga gl he hi hr hu id it ja ko lt lv mk ml ms nb ne nl nn oc pa pl pt pt_BR ro ru rw sk sl sq sr sr@latin sv tr uk vi wa zh_CN zh_HK zh_TW" 252GETTEXT_PACKAGE=balsa 253AC_SUBST(GETTEXT_PACKAGE) 254AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", 255 [The gettext package name.]) 256 257AC_PROG_INTLTOOL 258AM_GLIB_GNU_GETTEXT 259 260# _NL_MEASUREMENT_MEASUREMENT is an enum and not a define 261AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT]) 262AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]], 263 [[char c; 264 c = *((unsigned char *) 265 nl_langinfo 266 (_NL_MEASUREMENT_MEASUREMENT));]])], 267 [have__nl_measurement_measurement=yes], 268 [have__nl_measurement_measurement=no]) 269AC_MSG_RESULT($have__nl_measurement_measurement) 270if test "$have__nl_measurement_measurement" = "yes"; then 271 AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1], 272 [Define if _NL_MEASUREMENT_MEASUREMENT is available]) 273fi 274 275# sendmail 276# 277if test x"$with_esmtp" = xno; then 278AC_PATH_PROG(SENDMAIL, sendmail, no, $PATH:/usr/sbin:/usr/lib) 279AC_DEFINE_UNQUOTED(SENDMAIL, "$ac_cv_path_SENDMAIL", 280 [Path to sendmail program.]) 281fi 282 283dnl ##################################################################### 284dnl GNOME libs 285dnl ##################################################################### 286 287if test x$with_gnome != xno; then 288 gnome_extras="$gnome_extras gio-unix-2.0" 289 if test x$with_libsecret == xno; then 290 AC_MSG_CHECKING([whether we have gnome-keyring]) 291 if $PKG_CONFIG --atleast-version=1.0 gnome-keyring-1; then 292 gnome_extras="$gnome_extras gnome-keyring-1" 293 AC_DEFINE(HAVE_GNOME_KEYRING,1,[Defined when gnome-keyring is there.]) 294 # Work around http://bugzilla.gnome.org/show_bug.cgi?id=556530 295 if $PKG_CONFIG --atleast-version=2.24.1 gnome-keyring-1; then 296 AC_DEFINE(HAVE_GNOME_KEYRING_24,1, 297 [Defined with gnome-keyring-2.24 or newer.]) 298 fi 299 with_gnome_keyring=yes 300 else 301 with_gnome_keyring=no 302 fi 303 AC_MSG_RESULT($with_gnome_keyring) 304 fi 305 AC_DEFINE(HAVE_GNOME,1,[Defined when building for GNOME.]) 306else 307 gnome_extras="" 308fi 309 310# GMime configuration 311# 312if test "$with_gmime" = detect; then 313 AC_MSG_CHECKING([Gmime version]) 314 if $PKG_CONFIG --exists gmime-2.6; then 315 with_gmime=2.6 316 else 317 if $PKG_CONFIG --exists gmime-2.4; then 318 with_gmime=2.4 319 else 320 AC_MSG_ERROR([GMime 2.6 or 2.4 not detected.]) 321 fi 322 fi 323 AC_MSG_RESULT([$with_gmime]) 324fi 325 326case "$with_gmime" in 327 2.4) ;; 328 2.6) AC_DEFINE([HAVE_GMIME_2_6], [1], 329 [Defined to build with GMime version 2.5 or 2.6]) 330 if $PKG_CONFIG --atleast-version=2.5.7 gmime-2.6; then 331 AC_DEFINE([HAVE_GMIME_2_5_7], [1], 332 [Defined when GMime version is at least 2.5.7]) 333 fi 334 ;; 335 *) AC_MSG_ERROR([unknown GMime version $with_gmime]) ;; 336esac 337 338dnl ##################################################################### 339dnl 4. Libraries. 340dnl ##################################################################### 341 342dnl Make sure ld finds zlib: 343LIBS="$LIBS -lz" 344 345PKG_CHECK_MODULES(BALSA, [ 346glib-2.0 >= 2.28.0 347gtk+-3.0 348gmime-$with_gmime 349gio-2.0 >= 2.27.0 350gthread-2.0 351$gnome_extras 352]) 353 354PKG_CHECK_MODULES(BALSA_AB, [ 355 glib-2.0 >= 2.27.0 356 gtk+-3.0 357 gmime-$with_gmime 358 $gnome_extras 359]) 360 361AC_MSG_CHECKING(whether res_init is available) 362AC_LINK_IFELSE(AC_LANG_PROGRAM([#include <resolv.h> 363 ], 364 [res_init();]), 365 have_res_init=yes, 366 have_res_init=no) 367if test $have_res_init = no ; then 368 save_LIBS=$LIBS 369 LIBS="$LIBS -lresolv" 370 AC_LINK_IFELSE(AC_LANG_PROGRAM([#include <resolv.h> 371 ], 372 [res_init();]), 373 have_res_init=yes) 374fi 375AC_MSG_RESULT([$have_res_init]) 376if test $have_res_init = no ; then 377 LIBS=$save_LIBS 378else 379 AC_DEFINE(HAVE_RES_INIT,1, 380 [Defined when res_init is available.]) 381fi 382 383dnl ########################################################################## 384dnl Check versions 385dnl ########################################################################## 386 387AC_SUBST(BALSA_CFLAGS) 388AC_SUBST(BALSA_LIBS) 389AC_SUBST(BALSA_AB_LIBS) 390AC_SUBST(BALSA_DEFS) 391 392# HTML widget 393# 394AC_MSG_CHECKING(whether to use an HTML widget) 395case "$use_html_widget" in 396 gtkhtml2) 397 AC_MSG_RESULT([$use_html_widget]) 398 PKG_CHECK_MODULES(HTML, [ libgtkhtml-2.0 ]) 399 AC_DEFINE(HAVE_GTKHTML2,1,[Defined when GtkHtml-2 can be used.]) 400 ;; 401 gtkhtml4) 402 AC_MSG_RESULT([$use_html_widget]) 403 PKG_CHECK_MODULES(HTML, [ libgtkhtml-4.0 ], [], 404 [PKG_CHECK_MODULES(HTML, [ libgtkhtml-4.0 ],[], 405 [AC_MSG_ERROR([*** You enabled gtkhtml4 but it was not found.])])]) 406 AC_DEFINE(HAVE_GTKHTML4,1,[Defined when GtkHtml-4 can be used.]) 407 ;; 408 webkit | webkit2) 409 AC_MSG_RESULT([$use_html_widget]) 410 if test x"$use_threads" = xno ; then 411 if ! $PKG_CONFIG --atleast-version=2.24.0 glib-2.0; then 412 AC_MSG_ERROR([WebKit cannot be used with threads disabled and glib older than version 2.24.]) 413 fi 414 fi 415 if test $use_html_widget = webkit2 ; then 416 PKG_CHECK_MODULES(HTML, [webkit2gtk-3.0 >= 1.11.92 ]) 417 AC_DEFINE(USE_WEBKIT2,1,[Defined when WebKit2 is requested.]) 418 else 419 if $PKG_CONFIG --atleast-version=1.5.1 webkitgtk-3.0 ; then 420 PKG_CHECK_MODULES(HTML, [webkitgtk-3.0 javascriptcoregtk-3.0]) 421 else 422 PKG_CHECK_MODULES(HTML, [webkitgtk-3.0]) 423 fi 424 fi 425 AC_DEFINE(HAVE_WEBKIT,1,[Defined when WebKit can be used.]) 426 ;; 427 no) 428 AC_MSG_RESULT([none]) 429 ;; 430 *) AC_MSG_ERROR([bad option $use_html_widget]) ;; 431esac 432 433if test x"$use_html_widget" != xno ; then 434 AC_DEFINE(HAVE_HTML_WIDGET,1,[Defined when any HTML widget can be used.]) 435 BALSA_CFLAGS="$BALSA_CFLAGS $HTML_CFLAGS" 436 BALSA_LIBS="$BALSA_LIBS $HTML_LIBS" 437fi 438 439 440# GPGME detection. 441# We don't use the std macro AM_PATH_GPGME here to avoid dependencies. 442 443AC_MSG_CHECKING(whether to build with gpgme/GnuPG support) 444if test x"$gpgmecfg" = xyes ; then 445 AC_MSG_RESULT(yes) 446 AC_PATH_PROG(gpgmecfg, gpgme-config, no) 447 if test "$gpgmecfg" = no; then 448 AC_MSG_ERROR([GPGme build requested but gpgme-config program not found.]) 449 fi 450fi 451if test x"$gpgmecfg" != xno ; then 452 AC_MSG_CHECKING([gpgme library version]) 453 gpgmever=`$gpgmecfg --version` 454 AC_MSG_RESULT($gpgmever) 455 gpgme_ve=`echo $gpgmever|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` 456 gpgme_ma=`echo $gpgmever|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` 457 gpgme_mi=`echo $gpgmever|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` 458 if test $gpgme_ve -eq 0 ; then 459 if test $gpgme_ma -lt 9 ; then 460 gpgmecfg=no 461 have_smime=no 462 fi 463 fi 464 if test x"$gpgmecfg" != xno ; then 465 if test x"$use_threads" = xyes; then 466 BALSA_LIBS="$BALSA_LIBS `$gpgmecfg --thread=pthread --libs`" 467 if test x"$?" != x0 ; then 468 AC_MSG_ERROR([*** You enabled gpgme and pthread support, but your gpgme installation does not support threads.]) 469 fi 470 else 471 BALSA_LIBS="$BALSA_LIBS `$gpgmecfg --libs`" 472 fi 473 AC_DEFINE(HAVE_GPGME,1,[Defined when gpgme is available.]) 474 BALSA_CFLAGS="$BALSA_CFLAGS `$gpgmecfg --cflags`" 475 gpgmecfg=yes 476 else 477 AC_MSG_WARN([sorry, you need at least gpgme version 0.9.0]) 478 fi 479else 480 have_smime=no 481fi 482AM_CONDITIONAL([BUILD_WITH_GPGME], [test $gpgmecfg = "yes"]) 483 484# check the GnuPG engine application version 485# note: gpg2 interacts fine with gpgme only since version 2.0.4 486AC_DEFUN([AC_CHECK_GPG_VER],[ 487 if ! test -x $1 ; then 488 AC_MSG_ERROR([$1 is not executable]) 489 fi 490 AC_MSG_CHECKING([$1 version]) 491 gpgver=`$1 --version | sed -e 's/.* //' -e q` 492 AC_MSG_RESULT($gpgver) 493 gpg_ve=`echo $gpgver|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` 494 gpg_ma=`echo $gpgver|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` 495 gpg_mi=`echo $gpgver|sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` 496 HAVE_GPG2=no 497 if test \( $gpg_ve -eq 2 \) -a \( $gpg_ma -eq 0 \) -a \( $gpg_mi -lt 4 \) ; then 498 ifelse([$3], , :, [$3]) 499 else 500 if test $gpg_ve -eq 2 ; then 501 HAVE_GPG2=yes 502 fi 503 ifelse([$2], , :, [$2]) 504 fi]) 505 506# find a suitable GnuPG engine if gpgme is enabled 507if test x"$gpgmecfg" != xno ; then 508 if test x"$gpgapp" != xno ; then 509 AC_CHECK_GPG_VER($gpgapp, , 510 AC_MSG_ERROR([gpg2 < 2.0.4 does not communicate properly with gpgme])) 511 else 512 AC_PATH_PROG(gpg2, gpg2, [no]) 513 if test x"$gpg2" != xno ; then 514 AC_CHECK_GPG_VER($gpg2, [gpgapp=$gpg2], 515 AC_MSG_WARN([gpg2 < 2.0.4 does not communicate properly with gpgme])) 516 fi 517 if test x"$gpgapp" = xno ; then 518 AC_PATH_PROG(gpg, gpg, [no]) 519 if test x"$gpg" != xno ; then 520 AC_CHECK_GPG_VER($gpg, [gpgapp=$gpg], 521 AC_MSG_WARN([gpg2 < 2.0.4 does not communicate properly with gpgme])) 522 fi 523 fi 524 if test x"$gpgapp" = xno ; then 525 AC_PATH_PROG(gpg1, gpg1, [no]) 526 if test x"$gpg1" != xno ; then 527 AC_CHECK_GPG_VER($gpg1, [gpgapp=$gpg1], 528 AC_MSG_WARN([gpg2 < 2.0.4 does not communicate properly with gpgme])) 529 fi 530 fi 531 fi 532 if test x"$gpgapp" != xno ; then 533 AC_DEFINE(HAVE_GPG,1,[Defined when gpg is available.]) 534 AC_DEFINE_UNQUOTED(GPG_PATH,["$gpgapp"],[Path of gpg.]) 535 else 536 AC_MSG_WARN([cannot find a suitable gpg application]) 537 AC_MSG_WARN([please consider using --with-gpg-app to specify it]) 538 fi 539else 540 AC_MSG_RESULT([no]) 541fi 542 543# s/mime is mature for gpg >= 2.0.4 544AC_MSG_CHECKING(whether to include S/MIME support) 545if test \( x"$have_smime" = xyes \) -o \( \( x"$HAVE_GPG2" = xyes \) -a \( x"$have_smime" = xcheck \) \) ; then 546 AC_MSG_RESULT([yes]) 547 have_smime=yes 548 AC_DEFINE(HAVE_SMIME,1,[Defined when supporting S/MIME]) 549else 550 AC_MSG_RESULT([no]) 551fi 552AM_CONDITIONAL([BUILD_WITH_SMIME], [test $have_smime = "yes"]) 553 554 555# OpenLDAP configuration. 556# 557AC_MSG_CHECKING(whether to use LDAP) 558if test x"$with_ldap" != xno ; then 559 AC_MSG_RESULT([yes]) 560 AC_CHECK_LIB(ldap, ldap_search, AC_DEFINE(ENABLE_LDAP, 1, 561 [Defined when the LDAP support is to be compiled in.]) 562 LIBS="-lldap -llber -lresolv $LIBS", AC_MSG_ERROR([*** You enabled LDAP but ldap library is not found.]), -llber -lresolv) 563 AC_CHECK_LIB(ldap, ldap_start_tls_s, 564 AC_DEFINE(HAVE_LDAP_TLS,1, 565 [Defined when LDAP lib supports TLS])) 566 if test "$with_ldap" != yes; then 567 LIBS="$LIBS -L$with_ldap/lib" 568 CPPFLAGS="$CPPFLAGS -I$with_ldap/include" 569 fi 570else 571 AC_MSG_RESULT([no]) 572fi 573 574# SQLite configuration. 575# 576AC_MSG_CHECKING(whether to use SQLite) 577if test x$with_sqlite != xno ; then 578 AC_MSG_RESULT([yes]) 579 if $PKG_CONFIG --exists sqlite3 ; then 580 PKG_CHECK_MODULES(SQLITE, [sqlite3]) 581 AC_DEFINE(HAVE_SQLITE3,1,[If defined, use sqlite3 api.]) 582 else 583 PKG_CHECK_MODULES(SQLITE, [sqlite >= 2.8]) 584 fi 585 AC_DEFINE(HAVE_SQLITE,1,[If defined, enable GPE address book support.]) 586 BALSA_CFLAGS="$BALSA_CFLAGS $SQLITE_CFLAGS" 587 BALSA_LIBS="$BALSA_LIBS $SQLITE_LIBS" 588 BALSA_AB_LIBS="$BALSA_AB_LIBS $SQLITE_LIBS" 589else 590 AC_MSG_RESULT([no]) 591fi 592 593# Rubrica (libxml2) configuration 594# 595AC_MSG_CHECKING(whether to include Rubrica2 support) 596if test x$with_rubrica != xno ; then 597 AC_MSG_RESULT([yes]) 598 PKG_CHECK_MODULES(LIBXML2, [libxml-2.0]) 599 AC_DEFINE(HAVE_RUBRICA,1,[If defined, enable Rubrica2 address book support.]) 600 BALSA_CFLAGS="$BALSA_CFLAGS $LIBXML2_CFLAGS" 601 BALSA_LIBS="$BALSA_LIBS $LIBXML2_LIBS" 602 BALSA_AB_LIBS="$BALSA_AB_LIBS $LIBXML2_LIBS" 603else 604 AC_MSG_RESULT([no]) 605fi 606 607# LibESMTP configuration. 608# 609AC_MSG_CHECKING([whether to build ESMTP support]) 610if test "x$with_esmtp" != xno ; then 611 AC_MSG_RESULT([yes]) 612 test "$with_esmtp" != yes && LIBS="$LIBS -L$with_esmtp/lib" 613 AC_CHECK_LIB(esmtp, smtp_start_session,BALSA_LIBS="$BALSA_LIBS -lesmtp", 614 AC_MSG_ERROR([*** You enabled ESMTP but esmtp library is not found.]), 615 -lpthread) 616 AC_CHECK_LIB(esmtp, smtp_option_require_all_recipients, 617 AC_DEFINE(ENABLE_ESMTP, 1, 618 [Defined when ESTMP support is to be enabled.]), 619 AC_MSG_ERROR([*** You enabled ESMTP but esmtp library 620 does not support 'require_all_recipients'. 621 Please get a Balsa-aware libESMTP from 622 http://pawsa.fedorapeople.org/balsa/download.html 623 or compile libESMTP with 624 './configure --enable-require-all-recipients'.]), 625 -lpthread) 626 AC_CHECK_LIB(esmtp, smtp_starttls_set_password_cb, 627 AC_DEFINE(HAVE_SMTP_TLS_CLIENT_CERTIFICATE,1, 628 [Defined when libESMTP has TLS support.]), 629 , 630 -lpthread) 631 test "$with_esmtp" != yes && CPPFLAGS="$CPPFLAGS -I$with_esmtp/include" 632else 633 AC_MSG_RESULT([no]) 634fi 635 636# PCRE configuration. 637# 638 639AC_MSG_CHECKING(Regular expressions) 640if test x"$check_gregex" = xyes ; then 641 if $PKG_CONFIG --atleast-version=2.14.0 glib-2.0; then 642 AC_MSG_RESULT(GRegex) 643 AC_DEFINE(USE_GREGEX,1,[Defined when GRegex is to be used.]) 644 else 645 AC_MSG_ERROR([*** You enabled GRegex but glib is too old. Please 646 upgrade glib to version at least 2.14.0.]) 647 fi 648else 649 if test x"$check_pcre" = xyes ; then 650 if pcre-config --libs-posix > /dev/null 2>&1; then 651 vers=`pcre-config --version` 652 case $vers in 653 2.*) have_pcre=no ;; 654 *) have_pcre=yes ;; 655 esac 656 else 657 have_pcre=no 658 fi 659 660 if test x"$have_pcre" = xyes ; then 661 AC_MSG_RESULT(PCRE) 662 BALSA_CFLAGS="$BALSA_CFLAGS `pcre-config --cflags-posix`" 663 PCRE_LIBS="`pcre-config --libs-posix`" 664 AC_SUBST(PCRE_LIBS) 665 BALSA_LIBS="$BALSA_LIBS $PCRE_LIBS" 666 AC_DEFINE(HAVE_PCRE,1, 667 [Defined when PCRE library is available.]) 668 else 669 AC_MSG_RESULT(not found) 670 fi 671 else 672 have_pcre=no 673 AC_MSG_RESULT(POSIX) 674 fi 675fi 676 677# OpenSSL configuration. 678# 679 680AC_MSG_CHECKING([whether to build SSL support]) 681if test "x$with_ssl" != xno ; then 682# openssl >=0.9.7 is pkg-config compatible. 683 if pkg-config openssl >/dev/null 2>&1; then 684 BALSA_LIBS="$BALSA_LIBS `pkg-config --libs openssl`" 685 BALSA_CFLAGS="`pkg-config --cflags-only-I openssl` $BALSA_CFLAGS" 686 AC_MSG_RESULT(yes) 687 AC_DEFINE(USE_SSL,1,[Defined when SSL support is to be compiled.]) 688 AC_DEFINE(USE_TLS,USE_SSL,[Defined when TLS is to be enabled.]) 689 else 690 if test -d $with_ssl && test -f "$with_ssl/include/openssl/ssl.h" ; then 691 ssldir=$with_ssl 692 else 693 AC_TRY_COMPILE([#include <openssl/ssl.h>], , 694 ssldir=default, 695 ssldir="") 696 if test "x$ssldir" = x ; then 697 for prefixdir in /usr /usr/local /usr/lib /usr/pkg /var /opt; do 698 for dir in $prefixdir $prefixdir/openssl $prefixdir/ssl; do 699 if test -f "$dir/include/openssl/ssl.h"; then 700 ssldir=$dir 701 fi 702 done 703 done 704 fi 705 fi 706 if test -z "$ssldir"; then 707 AC_MSG_ERROR([SSL requested but no SSL headers found.]) 708 else 709 AC_MSG_RESULT(yes) 710 BALSA_LIBS="$BALSA_LIBS -lssl -lcrypto" 711 if test "x$ssldir" != xdefault ; then 712 BALSA_CFLAGS="-I${ssldir}/include $BALSA_CFLAGS" 713 fi 714 ac_cv_path_openssl=$ssldir 715 AC_DEFINE(USE_SSL,1,[Defined when SSL support is to be compiled.]) 716 AC_DEFINE(USE_TLS,USE_SSL,[Defined when TLS is to be enabled.]) 717 fi 718 fi 719else 720 AC_MSG_RESULT(no) 721fi 722 723# KRB5/GSSAPI configuration. 724# 725if test "x$with_gss" != xno ; then 726 AC_PATH_PROG(KRB5_CONFIG, krb5-config,no,[${PATH}:/usr/kerberos/bin:/usr/lib/mit/bin]) 727 if test "x$KRB5_CONFIG" != xno ; then 728 AC_DEFINE(HAVE_GSSAPI,1,[Defined when GSSAPI support is to be compiled.]) 729 BALSA_CFLAGS="$BALSA_CFLAGS `$KRB5_CONFIG --cflags gssapi`" 730 BALSA_LIBS="$BALSA_LIBS `$KRB5_CONFIG --libs gssapi`" 731 SAVE_CFLAGS="$CFLAGS"; CFLAGS="$BALSA_CFLAGS" 732 AC_CHECK_HEADER([gssapi.h], 733 [AC_DEFINE([HAVE_HEIMDAL],1,[Defined for Heimdal.])], 734 [AC_CHECK_HEADER([gssapi/gssapi.h],, 735 AC_MSG_ERROR([gssapi.h not found]))]) 736 CFLAGS="$SAVE_CFLAGS" 737 else 738 AC_MSG_ERROR([GSS requested but krb5-config not found. Install krb5-devel/heimdal-devel]) 739 fi 740fi 741 742# Libnotify configuration 743if test x$with_libnotify != xno; then 744 PKG_CHECK_MODULES(NOTIFY, [ libnotify >= 0.7.0 ], [notifyver=7], 745 [PKG_CHECK_MODULES(NOTIFY, [ libnotify >= 0.4.0 ], [notifyver=4], 746 [AC_MSG_ERROR([*** You enabled notify but the library is not found.])])]) 747 AC_DEFINE_UNQUOTED(HAVE_NOTIFY,$notifyver, 748 [Defined when libnotify can be used.]) 749 BALSA_LIBS="$BALSA_LIBS $NOTIFY_LIBS" 750 BALSA_AB_LIBS="$BALSA_AB_LIBS $NOTIFY_LIBS" 751 with_libnotify=" >= 0.$notifyver" 752fi 753 754# NetworkManager 755if test "$with_nm" != no ; then 756 if $PKG_CONFIG --atleast-version=2.32.0 glib-2.0 ; then 757 with_nm="no; using GNetworkMonitor instead" 758 fi 759 PKG_CHECK_EXISTS([libnm-glib], 760 [ PKG_CHECK_MODULES(LIBNM_GLIB, [ libnm-glib >= 0.7.0]) ], 761 [ PKG_CHECK_MODULES(LIBNM_GLIB, [ libnm_glib >= 0.7.0]) ]) 762 763 AC_DEFINE(HAVE_LIBNM_GLIB,1,[ Defined if NetworkManager-glib-devel is found.]) 764 BALSA_CFLAGS="$BALSA_CFLAGS $LIBNM_GLIB_CFLAGS" 765 LIBS="$LIBS $LIBNM_GLIB_LIBS" 766else 767AC_MSG_CHECKING([NetworkManager-glib-devel]) 768 AC_MSG_RESULT([no]) 769fi 770 771# Compface configuration 772# 773AC_MSG_CHECKING([whether to build Compface support]) 774if test "x$with_compface" != xno ; then 775 AC_MSG_RESULT([yes]) 776 test "$with_compface" != yes && BALSA_LIBS="$BALSA_LIBS -L$with_compface/lib" 777 AC_CHECK_LIB(compface, uncompface, BALSA_LIBS="$BALSA_LIBS -lcompface", 778 AC_MSG_ERROR([*** You enabled Compface but the library is not found.]),) 779 AC_DEFINE(HAVE_COMPFACE, 1, 780 [Defined when Compface support is requested.]) 781 test "$with_compface" != yes && CPPFLAGS="$CPPFLAGS -I$with_compface/include" 782else 783 AC_MSG_RESULT([no]) 784fi 785 786# GtkSourceView configuration 787# 788if test x$with_gtksourceview != xno; then 789 PKG_CHECK_MODULES(GTKSOURCEVIEW, [ gtksourceview-3.0 >= 3.2.0 ]) 790 AC_DEFINE(HAVE_GTKSOURCEVIEW,3,[Defined when GtkSourceView-3 can be used.]) 791 AC_MSG_NOTICE([Note: using GtkSourceview Version 3]) 792 with_gtksourceview=3 793 BALSA_CFLAGS="$BALSA_CFLAGS $GTKSOURCEVIEW_CFLAGS" 794 BALSA_LIBS="$BALSA_LIBS $GTKSOURCEVIEW_LIBS" 795fi 796AM_CONDITIONAL([BUILD_WITH_GTKSOURCEVIEW], [test x$with_gtksourceview = x3 ]) 797 798# libcanberra configuration 799# 800AC_MSG_CHECKING([whether to build with canberra]) 801if test x$with_canberra != xno; then 802 AC_MSG_RESULT([yes]) 803 PKG_CHECK_MODULES(CANBERRA, [ libcanberra-gtk3 ]) 804 AC_DEFINE(HAVE_CANBERRA,1,[Defined when canberra can be used.]) 805 BALSA_CFLAGS="$BALSA_CFLAGS $CANBERRA_CFLAGS" 806 BALSA_LIBS="$BALSA_LIBS $CANBERRA_LIBS" 807else 808 AC_MSG_RESULT([no]) 809fi 810 811# ige-mac-integration (Mac OS X desktop only) 812AC_MSG_CHECKING([whether to include Mac OS X Desktop Integration]) 813if test x$use_igemacint != xno; then 814 AC_MSG_CHECKING([for ige-mac-integration >= 0.8]) 815 if $PKG_CONFIG --atleast-version=0.8 ige-mac-integration ; then 816 AC_MSG_RESULT([yes]) 817 AC_DEFINE(HAVE_MACOSX_DESKTOP,1,[Defined when menus can be integrated into the Mac OS X desktop]) 818 BALSA_CFLAGS="$BALSA_CFLAGS `$PKG_CONFIG --cflags ige-mac-integration`" 819 BALSA_LIBS="$BALSA_LIBS `$PKG_CONFIG --libs ige-mac-integration`" 820 BALSA_AB_LIBS="$BALSA_AB_LIBS `$PKG_CONFIG --libs ige-mac-integration`" 821 else 822 AC_MSG_ERROR([no]) 823 fi 824else 825 AC_MSG_RESULT([no]) 826fi 827 828# Touch UI configuration 829# 830AC_MSG_CHECKING([whether to configure for Touch UI]) 831if test x$enable_touch_ui != xno; then 832 AC_DEFINE(ENABLE_TOUCH_UI,1,[Defined when touchscreen optimized UI is to be enabled.]) 833 AC_MSG_RESULT([yes]) 834else 835 AC_MSG_RESULT([no]) 836fi 837 838# Libsecret configuration 839# 840AC_MSG_CHECKING([whether to configure for libsecret]) 841if test x$with_libsecret != xno; then 842 AC_MSG_RESULT([yes]) 843 PKG_CHECK_MODULES(LIBSECRET, [ libsecret-1 ], [], 844 AC_MSG_ERROR([[You asked to link to libsecret, but 845 the development tool is not installed]])) 846 AC_DEFINE(HAVE_LIBSECRET,1,[Defined when libsecret can be used.]) 847 BALSA_CFLAGS="$BALSA_CFLAGS $LIBSECRET_CFLAGS" 848 BALSA_LIBS="$BALSA_LIBS $LIBSECRET_LIBS" 849else 850 AC_MSG_RESULT([no]) 851fi 852 853dnl ##################################################################### 854dnl 5. Headers. 855dnl ##################################################################### 856 857# Spell check detection. 858# 859if test x$with_gtkspell != xno; then 860 PKG_CHECK_MODULES(SPELL, [ gtkspell3-3.0 enchant ]) 861 AC_DEFINE(HAVE_GTKSPELL,1,[Defined when GtkSpell can be used.]) 862else 863 PKG_CHECK_MODULES(SPELL, [ enchant ]) 864fi 865BALSA_CFLAGS="$BALSA_CFLAGS $SPELL_CFLAGS" 866BALSA_LIBS="$BALSA_LIBS $SPELL_LIBS" 867AM_CONDITIONAL([BUILD_WITH_GTKSPELL], [test $with_gtkspell = "yes"]) 868 869dnl ##################################################################### 870dnl 6. Typedefs, structures and compiler characteristics. 871dnl ##################################################################### 872AC_C_CONST 873AC_STDC_HEADERS 874 875AC_DEFINE([_XOPEN_SOURCE],[500],[We strive for XOPEN compliance]) 876AC_CHECK_DECLS([localtime_r, gmtime_r, ctime_r], [], [], [[#include <time.h>]]) 877AC_CHECK_FUNCS([localtime_r gmtime_r ctime_r]) 878AC_CHECK_HEADER([zlib.h],,AC_MSG_ERROR([zlib library required])) 879 880# more warnings. 881# 882 883if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then 884 for option in -Wsign-compare -Wpointer-arith -Wnested-externs \ 885 -Wchar-subscripts -Wuninitialized -Wmissing-prototypes \ 886 -Wreturn-type -Wdeclaration-after-statement ; do 887 SAVE_CFLAGS="$CFLAGS" 888 CFLAGS="$CFLAGS $option" 889 AC_MSG_CHECKING([whether gcc understands $option]) 890 AC_TRY_COMPILE([], [], 891 has_option=yes, 892 has_option=no,) 893 if test $has_option = no; then 894 CFLAGS="$SAVE_CFLAGS" 895 fi 896 AC_MSG_RESULT($has_option) 897 unset has_option 898 unset SAVE_CFLAGS 899 done 900 unset option 901fi 902 903# extra warnings for GIT. 904# 905 906if test -d "${srcdir}/.git" ; then 907 BALSA_FROM_GIT=yes 908 BALSA_CFLAGS="$BALSA_CFLAGS -Wall -Werror" 909 BALSA_DEFS="$BALSA_DEFS \ 910-DG_DISABLE_DEPRECATED \ 911-DG_DISABLE_SINGLE_INCLUDES \ 912-DGDK_DISABLE_DEPRECATED \ 913-DGDK_PIXBUF_DISABLE_DEPRECATED \ 914-DGDK_MULTIDEVICE_SAFE \ 915-DGDK_MULTIHEAD_SAFE \ 916-DGMIME_DISABLE_DEPRECATED \ 917-DGNOME_DISABLE_DEPRECATED \ 918-DGNOME_DISABLE_DEPRECATED_SOURCE \ 919-DGNOME_VFS_DISABLE_DEPRECATED \ 920-DGTK_DISABLE_DEPRECATED \ 921-DGTK_DISABLE_SINGLE_INCLUDES \ 922-DNM_DISABLE_DEPRECATED \ 923-DPANGO_DISABLE_DEPRECATED \ 924-D_FORTIFY_SOURCE=2 \ 925" 926 927 if test x"$use_html_widget" != xgtkhtml2 ; then 928 BALSA_DEFS="$BALSA_DEFS \ 929 -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES" 930 fi 931else 932 BALSA_FROM_GIT=no 933fi 934 935AC_MSG_CHECKING([for GIT information]) 936AC_MSG_RESULT($BALSA_FROM_GIT) 937 938dnl ##################################################################### 939dnl 7. extra functions. 940dnl ##################################################################### 941AC_CHECK_FUNCS(getaddrinfo getnameinfo gai_strerror) 942 943# isblank() 944AC_MSG_CHECKING([for isblank]) 945AC_TRY_LINK( [#include <ctype.h>], [return isblank('a');], 946 AC_MSG_RESULT(yes), 947 [AC_MSG_RESULT(no) 948 AC_DEFINE(isblank,isspace, 949 [Redefined to isspace if isblank is not available.])] ) 950 951 952dnl ########################################################################### 953dnl Remember our prefixes 954dnl The way prefix et al are defined makes us jump through some hoops. 955dnl ########################################################################### 956 957if test "x$prefix" = "xNONE"; then 958 prefix=$ac_default_prefix 959fi 960dnl datadir='${prefix}/share', so we must eval it or something. This works 961BALSA_STD_PREFIX=`eval "echo ${prefix}"` 962BALSA_DATA_PREFIX=`eval "echo ${datadir}/balsa"` 963dnl autoconf-2.60 leaves a literal "${prefix}" in BALSA_DATA_PREFIX, so 964dnl we clean it once more. 965BALSA_DATA_PREFIX=`eval "echo ${BALSA_DATA_PREFIX}"` 966AC_SUBST(BALSA_DATA_PREFIX) 967 968dnl Consolidate them! 969AC_PROG_AWK 970BALSA_COMMON_PREFIXES=`sort<<EOF|uniq|${AWK} '{if(l!~/^$/)print l ",";l=$0}END{print l}' 971"${BALSA_STD_PREFIX}" 972"${BALSA_DATA_PREFIX}" 973EOF 974` 975 976dnl Better way to do this? 977AC_DEFINE_UNQUOTED( BALSA_STD_PREFIX, "$BALSA_STD_PREFIX", 978 [Directory for all balsa files.] ) 979AC_DEFINE_UNQUOTED( BALSA_DATA_PREFIX, "$BALSA_DATA_PREFIX", 980 [Directory for storing balsa data files.] ) 981AC_DEFINE_UNQUOTED( BALSA_COMMON_PREFIXES, `echo $BALSA_COMMON_PREFIXES`, 982 [Common directories for storing balsa icons.] ) 983dnl bleah 984 985 986dnl ########################################################################### 987dnl determine the base folder for installing the extra icons 988dnl ########################################################################### 989 990AC_ARG_ENABLE(extra-mimeicons, 991 AC_HELP_STRING([--enable-extra-mimeicons], 992 [Install extra MIME icons (needs write access to the gtk+ icon folder, default=yes)]),[ 993 install_mimeicons=$enableval 994],[ 995 install_mimeicons=yes 996]) 997AM_CONDITIONAL([INSTALL_MIME_ICONS], [test $install_mimeicons = "yes"]) 998HICOLOR_ICON_DIR=`$PKG_CONFIG --variable=prefix gtk+-3.0`/share/icons/hicolor 999AC_SUBST(HICOLOR_ICON_DIR) 1000dnl however, we do not mess with the icon caches - it messes up more 1001dnl things that it fixes, for eg. user installs, package builds etc. 1002dnl AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache) 1003 1004dnl ##################################################################### 1005dnl 8. Output 1006dnl ##################################################################### 1007 1008AC_OUTPUT([ 1009Makefile 1010balsa.1 1011balsa.spec 1012balsa.desktop.in 1013balsa-mailto-handler.desktop.in 1014po/Makefile.in 1015sounds/Makefile 1016images/Makefile 1017images/mimetypes/Makefile 1018images/16x16/Makefile 1019images/24x24/Makefile 1020doc/Makefile 1021libbalsa/Makefile 1022libbalsa/imap/Makefile 1023libinit_balsa/Makefile 1024src/Makefile 1025]) 1026 1027dnl ########################################################################## 1028dnl Summary 1029dnl ########################################################################## 1030 1031echo "" 1032echo "================ Final configuration ===================" 1033echo " Installing into prefix: $prefix" 1034echo " Using multithreading: $use_threads" 1035echo " Enable compile warnings: $set_more_warnings" 1036echo " Use ESMTP : $with_esmtp" 1037echo " HTML widget: $use_html_widget" 1038echo " Use GNOME: $with_gnome" 1039echo " Use Canberra: $with_canberra" 1040echo " Use GPGME: $gpgmecfg" 1041echo " Use LDAP: $with_ldap" 1042echo " Use GSS: $with_gss" 1043echo " Use SQLite: $with_sqlite" 1044echo " Use SSL: $with_ssl" 1045echo " Use NetworkManager: $with_nm" 1046echo " Use GtkSpell: $with_gtkspell" 1047echo " Use Libnotify: $with_libnotify" 1048echo " Use GtkSourceView: $with_gtksourceview" 1049echo " Use Compface: $with_compface" 1050echo " Install extra MIME icons: $install_mimeicons" 1051echo " Configure for Touch UI: $enable_touch_ui" 1052echo " GMime version: $with_gmime" 1053echo " Use libsecret: $with_libsecret" 1054dnl echo " Use SASL: $need_sasl" 1055echo "" 1056 1057if test x"$BALSA_FROM_GIT" = xyes ; then 1058 echo "============================== NOTICE ================================" 1059 echo " You are using Balsa from GIT source." 1060 echo " The program is likely to be unstable, contain incomplete features," 1061 echo "or just plain not work. Use it at your own risk. You have been warned." 1062 echo "======================================================================" 1063 echo "" 1064fi 1065