view mcabber/configure.ac @ 2150:392cf37d5966

Get rid of the libgcrypt explicit dependency Libotr depends on libgcrypt, but mcabber itself does not, so we don't have to check for it in the configure script. (Reported by Ryan Schmidt.)
author Mikael Berthe <mikael@lilotux.net>
date Sun, 17 Aug 2014 17:47:59 +0200
parents 5150b3bf4c15
children db6ca1e1e082
line wrap: on
line source

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.59)
AC_INIT([mcabber],[0.10.4-dev],[mcabber@lilotux.net])
XC_AUTOMAKE
AC_CONFIG_SRCDIR([mcabber])
AC_CONFIG_HEADERS([mcabber/config.h])
AC_CONFIG_HEADERS([include/config.h])

AC_PROG_LIBTOOL
AC_PROG_RANLIB

# Checks for programs.
AC_PROG_CC
AC_PROG_INSTALL

if test "x$GCC" = "xyes"; then
    dnl Get gcc version
    AC_MSG_CHECKING([gcc version])
        gccver=$($CC -dumpversion)
        gccvermajor=$(echo $gccver | cut -d . -f1)
        gccverminor=$(echo $gccver | cut -d . -f2)
        gccvernum=$(expr $gccvermajor "*" 100 + $gccverminor)
    AC_MSG_RESULT($gccver)

    CFLAGS="$CFLAGS -Wall"
    if test x"$gccvermajor" = x"4" -a x"$gccverminor" = x"2"; then
        DBGCFLAGS="-fgnu89-inline"
    fi
fi

AC_SYS_LARGEFILE

PKG_PROG_PKG_CONFIG

# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([arpa/inet.h fcntl.h locale.h netdb.h netinet/in.h stddef.h \
                  stdlib.h string.h strings.h sys/socket.h sys/time.h \
                  syslog.h termios.h wchar.h wctype.h localcharset.h])
AC_CHECK_HEADERS([unistd.h], , AC_MSG_ERROR([Missing header file]))
AC_VAR_TIMEZONE_EXTERNALS

# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM

# Checks for library functions.
AC_FUNC_ERROR_AT_LINE
AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_FUNC_REALLOC
AC_FUNC_SELECT_ARGTYPES
AC_TYPE_SIGNAL
AC_FUNC_STRFTIME
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([alarm arc4random bzero gethostbyname gethostname inet_ntoa \
                isascii memmove memset modf select setlocale socket strcasecmp \
                strchr strdup strncasecmp strrchr strstr strcasestr vsnprintf \
                iswblank])


AC_CHECK_DECLS([strptime],,,
[#define _GNU_SOURCE
#include <time.h>])

# Check for tm_gmtoff
MC_TM_GMTOFF

# Check if we must provide a SIGWINCH handler
AC_ARG_ENABLE(sigwinch,
        AC_HELP_STRING([--enable-sigwinch], [compile with SIGWINCH handler]),
        [with_sigwinch=$enableval],
        [with_sigwinch=$with_ext_funcs])
AC_MSG_RESULT($with_sigwinch)
if test "$with_sigwinch" = yes; then
    AC_DEFINE([USE_SIGWINCH], [], [Provide own SIGWINCH handler])
fi

# Checks for libraries.

AC_CHECK_LIB(charset, locale_charset)

AC_CHECK_FUNC(initscr,,
[
    cf_ncurses="ncurses"
    for lib in ncursesw ncurses
    do
        AC_CHECK_LIB($lib, waddnwstr,
            [cf_ncurses="$lib"; cf_ncurses_unicode="yes"; break])
    done
    AC_CHECK_LIB($cf_ncurses, initscr,
        [LIBS="$LIBS -l$cf_ncurses"
         if test "$cf_ncurses" = ncursesw; then
            AC_CHECK_HEADERS([ncursesw/ncurses.h ncursesw/panel.h],,
                 [AC_CHECK_HEADERS([ncurses.h panel.h],,
                                   AC_MSG_ERROR([Missing header file]))])
         else
             AC_CHECK_HEADERS([ncurses/ncurses.h ncurses/panel.h],,
                 [AC_CHECK_HEADERS([ncurses.h panel.h],,
                                   AC_MSG_ERROR([Missing header file]))])
         fi
        ],
        [CF_CURSES_LIBS])
])

AC_CHECK_LIB([panelw], [new_panel],,
             AC_CHECK_LIB([panel], [new_panel])
            )

if test x"$cf_ncurses_unicode" = x"yes"; then
    AC_DEFINE([HAVE_UNICODE], [], [Define if ncurses have unicode support])
else
    AC_MSG_WARN([Your ncurses installation does not support unicode])
fi

AC_CACHE_CHECK([for ESCDELAY variable],
               [mc_cv_ncurses_escdelay],
               [AC_TRY_LINK([], [
                            extern int ESCDELAY;
                            ESCDELAY = 0;
                            ],
                            [mc_cv_ncurses_escdelay=yes],
                            [mc_cv_ncurses_escdelay=no])
               ])
if test "$mc_cv_ncurses_escdelay" = yes; then
    AC_DEFINE([HAVE_ESCDELAY], 1,
              [Define if ncurses has ESCDELAY variable])
fi

AC_ARG_ENABLE(modules, AC_HELP_STRING([--disable-modules],
                                      [disable dynamic modules loading]),
              enable_modules=$enableval)
if test "x$enable_modules" != "xno"; then
  AC_DEFINE(MODULES_ENABLE, 1, [Define if you want dynamic modules loading])
  gmodule_module=gmodule
else
  gmodule_module=''
fi

# Check for glib
AM_PATH_GLIB_2_0(2.14.0,
                 [AC_DEFINE([HAVE_GLIB_REGEX], 1,
                            [Define if GLib has regex support])],
                 [AM_PATH_GLIB_2_0(2.0.0, , AC_MSG_ERROR([glib is required]),
                                  [g_list_append], ["$gmodule_module"])],
                 [g_regex_new "$gmodule_module"])

# Check for loudmouth
PKG_CHECK_MODULES(LOUDMOUTH, loudmouth-1.0 >= 1.4.2)

# Check for lm_ssl_set_cipher_list in loudmouth
AC_CHECK_LIB(loudmouth-1, lm_ssl_set_cipher_list,
              AC_DEFINE([HAVE_LM_SSL_CIPHER_LIST], 1,
                        [Define that loudmouth has lm_ssl_cipher_list]
                        )
            )
# Check for lm_ssl_set_cipher_list in loudmouth
AC_CHECK_LIB(loudmouth-1, lm_ssl_set_ca,
              AC_DEFINE([HAVE_LM_SSL_CA], 1,
                        [Define that loudmouth has lm_ssl_ca]
                        )
            )


# Check for libidn
AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
                                   [Support IDN (needs GNU Libidn)]),
            libidn=$withval, libidn=yes)
if test "$libidn" != "no" ; then
  PKG_CHECK_MODULES(LIBIDN, libidn >= 0.0.0, [libidn=yes], [libidn=no])
  if test "$libidn" != "yes" ; then
    libidn=no
    AC_MSG_WARN([Libidn not found])
  else
    libidn=yes
    AC_DEFINE(HAVE_LIBIDN, 1, [Define to 1 if you want Libidn.])
  fi
fi

# Check for gpgme
AC_ARG_ENABLE(gpgme,
    AC_HELP_STRING([--disable-gpgme], [disable GPGME support]),
    [ if test x"$enableval" = x"no"; then
        enable_gpgme=no
      fi
    ])

if test x"${enable_gpgme}" != x"no"; then
    AM_PATH_GPGME(1.0.0, AC_DEFINE([HAVE_GPGME], 1,
        [Define if you use GPGME to support OpenPGP]))
fi

# Check for otr
AC_ARG_ENABLE(otr,
    AC_HELP_STRING([--enable-otr],
                   [enable OTR (Off-the-Record) messaging support]),
    enable_otr=$enableval,
    otr="")
if test "x$enable_otr" = "xyes"; then
    # Look for libotr
    AM_PATH_LIBOTR(4.0.0, [
        AC_DEFINE([HAVE_LIBOTR], 1, [Define if you use libotr])
    ], [
        AM_PATH_LIBOTR(3.1.0, [
            AC_DEFINE([HAVE_LIBOTR], 1, [Define if you use libotr])
            AC_DEFINE([HAVE_LIBOTR3], 1, [Define if you use libotr v3])
        ], [
            AC_MSG_ERROR(libotr 3.1.0 or newer is required.)
        ])
    ])
fi

# Check for Enchant stuff
AC_ARG_ENABLE(enchant,
              AC_HELP_STRING([--enable-enchant], [enable enchant support]),
              enable_enchant=$enableval, enchant="")
# Check for Aspell stuff
AC_ARG_ENABLE(aspell,
              AC_HELP_STRING([--enable-aspell], [enable aspell support]),
              enable_aspell=$enableval, aspell="")

if test "x$enable_enchant" = "xyes"; then
 PKG_CHECK_MODULES(ENCHANT, [enchant],
   AC_DEFINE(WITH_ENCHANT, 1, [Define if you want enchant support])
 )
else
 if test "x$enable_aspell" = "xyes"; then
    AC_CHECK_HEADERS(aspell.h, [ have_aspell_includes=yes ])
    if test "x$have_aspell_includes" = "xyes"; then
        AC_CHECK_LIB(aspell, new_aspell_config, [ have_aspell_libs=yes ])
        if test "x$have_aspell_libs" = "xyes"; then
            AC_DEFINE([WITH_ASPELL], 1, [Define if you want aspell support])
            LIBS="$LIBS -laspell"
        else
            enable_aspell=no
        fi
    else
        enable_aspell=no
    fi
 fi
fi

# Export $datadir to the source tree.
if test x"${datadir}" != x""; then
    AC_DEFINE_DIR(DATA_DIR, datadir, [Data files directory])
fi

# Export $libexecdir to the source tree
AC_DEFINE_DIR(PKGLIB_DIR, "${libdir}/${PACKAGE}", [Modules directory])

AC_ARG_ENABLE(xep0022,
              AC_HELP_STRING([--enable-xep0022],
                             [enable obsolete Message Events (XEP-0022)]),
              xep0022=$enableval)
if test "${xep0022}" = "yes"; then
    AC_DEFINE([XEP0022], 1, [Define if you want obsolete Message Events])
fi

AC_ARG_ENABLE(debug,
    AC_HELP_STRING([--enable-debug], [add development compilation options]),
    debug=$enableval, debug="")
if test x"${debug}" = x"yes"; then
    AC_DEFINE_UNQUOTED([ENABLE_DEBUG],[1],[Devel compilation options])
    if test "x$GCC" = "xyes"; then
        if test "$gccvernum" -ge "400"; then
            CFLAGS="$CFLAGS -Wextra"
        else
            CFLAGS="$CFLAGS -W"
        fi
        CFLAGS="$CFLAGS -Wno-unused-parameter -pedantic -std=gnu99 $DBGCFLAGS -O0"
    fi # gcc
    CFLAGS="$CFLAGS -g"
else
    CFLAGS="-O2 $CFLAGS"
fi

AC_ARG_ENABLE(hgcset,
    AC_HELP_STRING([--disable-hgcset], [do not use Mercurial changeset value]),
    hgcset=$enableval, hgcset="yes")
AM_CONDITIONAL(HGCSET, [test x$hgcset = xyes])
if test "${hgcset}" = "yes"; then
    AC_DEFINE([ENABLE_HGCSET], 1, [Use Mercurial changeset])
fi

AM_CONDITIONAL([OTR], [test x$libotr_found = xyes])
AM_CONDITIONAL([INSTALL_HEADERS], [test x$enable_modules != xno])

# Prepare some config.h variables
AC_DEFINE([MCABBER_BRANCH], "dev", [Mcabber branch])
AC_DEFINE([MCABBER_VERSION], "AC_PACKAGE_VERSION", [Mcabber version string])

# We need _GNU_SOURCE for strptime() and strcasestr()
CFLAGS="$CFLAGS -D_GNU_SOURCE"

AC_CONFIG_FILES([mcabber/Makefile
                 modules/Makefile
                 modules/beep/Makefile
                 modules/xttitle/Makefile
                 modules/fifo/Makefile
                 modules/urlregex/Makefile
                 doc/Makefile
                 doc/guide/Makefile
                 doc/help/Makefile
                 mcabber.pc
                 Makefile])
AC_OUTPUT
dnl vim: set expandtab cindent cinoptions=>2\:2(0 sw=2 ts=2:  For Vim users...