mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-18 22:36:22 +00:00
They were disabled in 171b6e73c9.
Enable the functional test suite and replaces the
dependency on libexpect with a custom solution.
The native solution allows for specific optimizations like automatic
ANSI code stripping, which is essential for reliable pattern matching in
an ncurses interface.
Custom PTY management via libutil provides full control over the process
lifecycle, resolving issues where tests would hang indefinitely.
We use forkpty from libutil.
Addiiotnally this commit implements automatic ANSI escape sequence
filtering to improve matching consistency.
This will get rid of the colors in matches. It's still something that we
need to think about more since basically we will not test out
color/theme system this way.
We also add non-blocking poll() and SIGKILL based teardown logic to
ensure clean test termination.
We added the functional tests to both autotools and meson.
They are only build when tests are enabled and stabber + libutil are
present.
Meson will print this out nicely in the summary.
Regards https://github.com/profanity-im/profanity/issues/789
440 lines
18 KiB
Plaintext
440 lines
18 KiB
Plaintext
# Process this file with autoconf to produce a configure script.
|
|
|
|
AC_PREREQ([2.69])
|
|
AC_INIT([profanity],[0.16.0],[jubalh@iodoru.org],[profanity],[https://profanity-im.github.io/])
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
AC_CONFIG_SRCDIR([src/main.c])
|
|
AC_CONFIG_HEADERS([src/config.h])
|
|
|
|
AC_PROG_CC
|
|
LT_INIT
|
|
AC_SYS_LARGEFILE
|
|
|
|
## Determine platform
|
|
AC_CANONICAL_TARGET
|
|
PLATFORM="unknown"
|
|
AS_CASE([$target_os],
|
|
[freebsd*], [PLATFORM="freebsd"],
|
|
[netbsd*], [PLATFORM="netbsd"],
|
|
[openbsd*], [PLATFORM="openbsd"],
|
|
[darwin*], [PLATFORM="osx"],
|
|
[cygwin], [PLATFORM="cygwin"],
|
|
[PLATFORM="nix"])
|
|
|
|
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
|
|
|
PACKAGE_STATUS="development"
|
|
|
|
## Get git branch and revision if in development
|
|
if test "x$PACKAGE_STATUS" = xdevelopment; then
|
|
AM_CONDITIONAL([INCLUDE_GIT_VERSION], [true])
|
|
AC_DEFINE([HAVE_GIT_VERSION], [1], [Include git info])
|
|
else
|
|
AM_CONDITIONAL([INCLUDE_GIT_VERSION], [false])
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED([PACKAGE_STATUS], ["$PACKAGE_STATUS"], [Status of this build])
|
|
|
|
AS_IF([test "x$PLATFORM" = xcygwin],
|
|
[AC_DEFINE([PLATFORM_CYGWIN], [1], [Cygwin])])
|
|
AS_IF([test "x$PLATFORM" = xosx],
|
|
[AC_DEFINE([PLATFORM_OSX], [1], [OSx])
|
|
# Apple silicon homebrew flags
|
|
AC_CHECK_FILE([/opt/homebrew/include],
|
|
[AM_CFLAGS="$AM_CFLAGS -I/opt/homebrew/include"
|
|
AM_LDFLAGS="$AM_LDFLAGS -L/opt/homebrew/lib"])])
|
|
|
|
## Environment variables
|
|
AC_ARG_VAR([PYTHON_FRAMEWORK], [Set base directory for Python Framework])
|
|
|
|
## Options
|
|
AC_ARG_ENABLE([notifications],
|
|
[AS_HELP_STRING([--enable-notifications], [enable desktop notifications])])
|
|
AC_ARG_ENABLE([python-plugins],
|
|
[AS_HELP_STRING([--enable-python-plugins], [enable Python plugins])])
|
|
AC_ARG_ENABLE([c-plugins],
|
|
[AS_HELP_STRING([--enable-c-plugins], [enable C plugins])])
|
|
AC_ARG_ENABLE([plugins],
|
|
[AS_HELP_STRING([--enable-plugins], [enable plugins])])
|
|
AC_ARG_ENABLE([otr],
|
|
[AS_HELP_STRING([--enable-otr], [enable otr encryption])])
|
|
AC_ARG_ENABLE([pgp],
|
|
[AS_HELP_STRING([--enable-pgp], [enable pgp])])
|
|
AC_ARG_ENABLE([omemo],
|
|
[AS_HELP_STRING([--enable-omemo], [enable OMEMO encryption])])
|
|
AC_ARG_WITH([xscreensaver],
|
|
[AS_HELP_STRING([--with-xscreensaver], [use libXScrnSaver to determine idle time])])
|
|
AC_ARG_WITH([themes],
|
|
[AS_HELP_STRING([--with-themes[[=PATH]]], [install themes (default yes)])])
|
|
AC_ARG_ENABLE([icons-and-clipboard],
|
|
[AS_HELP_STRING([--enable-icons-and-clipboard], [enable GTK tray icons and clipboard paste support])])
|
|
AC_ARG_ENABLE([gdk-pixbuf],
|
|
[AS_HELP_STRING([--enable-gdk-pixbuf], [enable GDK Pixbuf support to scale avatars before uploading])])
|
|
AC_ARG_ENABLE([omemo-qrcode],
|
|
[AS_HELP_STRING([--enable-omemo-qrcode], [enable ability to display omemo qr code])])
|
|
|
|
m4_include([m4/ax_valgrind_check.m4])
|
|
AX_VALGRIND_DFLT([drd], [off])
|
|
AX_VALGRIND_DFLT([helgrind], [off])
|
|
AX_VALGRIND_DFLT([sgcheck], [off])
|
|
AX_VALGRIND_CHECK
|
|
|
|
# Required dependencies
|
|
|
|
AC_CHECK_FUNCS([atexit memset strdup strstr])
|
|
|
|
PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.62.0], [],
|
|
[AC_MSG_ERROR([glib 2.62.0 or higher is required])])
|
|
PKG_CHECK_MODULES([gio], [gio-2.0], [],
|
|
[AC_MSG_ERROR([libgio-2.0 from glib-2.0 is required])])
|
|
|
|
AC_SEARCH_LIBS([fmod], [m], [],
|
|
[AC_MSG_ERROR([math.h is required])], [])
|
|
|
|
PKG_CHECK_MODULES([curl], [libcurl >= 7.62.0], [],
|
|
[AC_CHECK_LIB([curl], [main], [],
|
|
[AC_MSG_ERROR([libcurl 7.62.0 or higher is required])])])
|
|
|
|
PKG_CHECK_MODULES([SQLITE], [sqlite3 >= 3.22.0], [],
|
|
[AC_MSG_ERROR([sqlite3 3.22.0 or higher is required])])
|
|
|
|
AX_PTHREAD
|
|
AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ])
|
|
|
|
### plugins
|
|
|
|
## python
|
|
if test "x$enable_plugins" = xno; then
|
|
AM_CONDITIONAL([BUILD_PYTHON_API], [false])
|
|
elif test "x$enable_python_plugins" != xno; then
|
|
AS_IF([test "x$PLATFORM" = xosx], [
|
|
AS_IF([test "x$PYTHON_FRAMEWORK" = x], [ PYTHON_FRAMEWORK="/Library/Frameworks/Python.framework" ])
|
|
AC_MSG_NOTICE([Symlinking Python.framework to $PYTHON_FRAMEWORK])
|
|
rm -f Python.framework
|
|
ln -s $PYTHON_FRAMEWORK Python.framework ])
|
|
PKG_CHECK_MODULES([python], [python-embed], [PYTHON_CONFIG_EXISTS=yes], [PYTHON_CONFIG_EXISTS=no])
|
|
PKG_CHECK_MODULES([python], [python3-embed], [PYTHON3_CONFIG_EXISTS=yes; AC_DEFINE(PY_IS_PYTHON3, [1], [Is Python version 3])], [PYTHON3_CONFIG_EXISTS=no])
|
|
if test "$PYTHON_CONFIG_EXISTS" = "yes" || test "$PYTHON3_CONFIG_EXISTS" = "yes"; then
|
|
AM_CONDITIONAL([BUILD_PYTHON_API], [true])
|
|
AC_DEFINE([HAVE_PYTHON], [1], [Python support])
|
|
else
|
|
if test "x$enable_python_plugins" = xyes; then
|
|
AC_MSG_ERROR([Python not found, cannot enable Python plugins.])
|
|
else
|
|
AM_CONDITIONAL([BUILD_PYTHON_API], [false])
|
|
AC_MSG_NOTICE([Python development package not found, Python plugin support disabled.])
|
|
fi
|
|
fi
|
|
AS_IF([test "x$PLATFORM" = xosx], [rm -f Python.framework])
|
|
# set path to look for global python plugins
|
|
GLOBAL_PYTHON_PLUGINS_PATH='${pkgdatadir}/plugins'
|
|
AC_SUBST(GLOBAL_PYTHON_PLUGINS_PATH)
|
|
else
|
|
AM_CONDITIONAL([BUILD_PYTHON_API], [false])
|
|
fi
|
|
|
|
## C
|
|
if test "x$PLATFORM" = xcygwin; then
|
|
AM_CONDITIONAL([BUILD_C_API], [false])
|
|
else
|
|
LT_INIT
|
|
if test "x$enable_plugins" = xno; then
|
|
AM_CONDITIONAL([BUILD_C_API], [false])
|
|
elif test "x$enable_c_plugins" != xno; then
|
|
# libdl doesn't exist as a separate library in the BSDs and is
|
|
# provided in the standard libraries.
|
|
AS_IF([test "x$PLATFORM" = xopenbsd -o "x$PLATFORM" = xfreebsd -o "x$PLATFORM" = xnetbsd],
|
|
[AM_CONDITIONAL([BUILD_C_API], [true]) AC_DEFINE([HAVE_C], [1], [C support])],
|
|
[AC_CHECK_LIB([dl], [main],
|
|
[AM_CONDITIONAL([BUILD_C_API], [true]) LIBS="$LIBS -ldl" AC_DEFINE([HAVE_C], [1], [C support])],
|
|
[AS_IF(
|
|
[test "x$enable_c_plugins" = xyes],
|
|
[AC_MSG_ERROR([dl library needed to run C plugins])],
|
|
[AM_CONDITIONAL([BUILD_C_API], [false])])
|
|
])])
|
|
# set path to look for global c plugins
|
|
GLOBAL_C_PLUGINS_PATH='${pkglibdir}/plugins'
|
|
AC_SUBST(GLOBAL_C_PLUGINS_PATH)
|
|
else
|
|
AM_CONDITIONAL([BUILD_C_API], [false])
|
|
fi
|
|
fi
|
|
|
|
## Check for libstrophe
|
|
PKG_CHECK_MODULES([libstrophe], [libstrophe >= 0.12.3],
|
|
[LIBS="$libstrophe_LIBS $LIBS" CFLAGS="$CFLAGS $libstrophe_CFLAGS"])
|
|
|
|
AC_MSG_CHECKING([whether libstrophe works])
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
|
#include <strophe.h>
|
|
|
|
int main() {
|
|
xmpp_initialize();
|
|
return 0;
|
|
}
|
|
]])],
|
|
[AC_MSG_RESULT([yes])],
|
|
[AC_MSG_ERROR([libstrophe is broken, check config.log for details])])
|
|
|
|
AC_MSG_CHECKING([whether libstrophe has XMPP_CERT_PUBKEY_FINGERPRINT_SHA256 support])
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
|
#include <strophe.h>
|
|
|
|
int main() {
|
|
xmpp_tlscert_get_string(NULL, XMPP_CERT_PUBKEY_FINGERPRINT_SHA256);
|
|
return 1;
|
|
}
|
|
]])],
|
|
[AC_MSG_RESULT([yes])
|
|
AC_DEFINE([HAVE_XMPP_CERT_PUBKEY_FINGERPRINT_SHA256], [1], [Have XMPP_CERT_PUBKEY_FINGERPRINT_SHA256])],
|
|
[AC_MSG_RESULT(no)])
|
|
|
|
## Check for curses library
|
|
PKG_CHECK_MODULES([ncursesw], [ncursesw],
|
|
[NCURSES_CFLAGS="$ncursesw_CFLAGS"; NCURSES_LIBS="$ncursesw_LIBS"; CURSES="ncursesw"],
|
|
[PKG_CHECK_MODULES([ncurses], [ncurses],
|
|
[NCURSES_CFLAGS="$ncurses_CFLAGS"; NCURSES_LIBS="$ncurses_LIBS"; CURSES="ncurses"],
|
|
[AC_CHECK_LIB([ncursesw], [main], [],
|
|
[AC_CHECK_LIB([ncurses], [main], [],
|
|
[AC_CHECK_LIB([curses], [main],
|
|
[LIBS="$LIBS -lcurses"; CURSES="curses"],
|
|
[AC_MSG_ERROR([ncurses or curses is required for profanity])])])])])])
|
|
AM_CFLAGS="$AM_CFLAGS $NCURSES_CFLAGS"
|
|
LIBS="$NCURSES_LIBS $LIBS"
|
|
|
|
## Check wide characters support in curses library
|
|
CFLAGS_RESTORE="$CFLAGS"
|
|
CFLAGS="$CFLAGS $NCURSES_CFLAGS"
|
|
AC_CACHE_CHECK([for wget_wch support in $CURSES], ncurses_cv_wget_wch,
|
|
[AC_LINK_IFELSE([AC_LANG_SOURCE([
|
|
void wget_wch(void);
|
|
int main() {
|
|
wget_wch();
|
|
return 0;
|
|
}
|
|
])],
|
|
[ncurses_cv_wget_wch=yes],
|
|
[ncurses_cv_wget_wch=no])
|
|
])
|
|
CFLAGS="$CFLAGS_RESTORE"
|
|
|
|
AS_IF([test "x$ncurses_cv_wget_wch" != xyes],
|
|
[AC_MSG_ERROR([ncurses does not support wide characters])])
|
|
|
|
## Check for ncursesw/ncurses.h first, Arch linux uses ncurses.h for ncursesw
|
|
AC_CHECK_HEADERS([ncursesw/ncurses.h], [], [])
|
|
AC_CHECK_HEADERS([ncurses.h], [], [])
|
|
AC_CHECK_HEADERS([curses.h], [], [])
|
|
|
|
# Check for readline
|
|
AS_IF([test "x$PLATFORM" = xosx],
|
|
[AC_PATH_PROG([BREW], [brew], ["failed"],
|
|
[$PATH:/opt/homebrew/bin:/usr/local/bin])
|
|
AS_IF([test "x$BREW" = xfailed],
|
|
[AC_CHECK_FILE([/opt/local/lib/libreadline.dylib],
|
|
[READLINE_PREFIX="/opt/local"],
|
|
[READLINE_PREFIX="/usr/local"])],
|
|
[READLINE_PREFIX="`$BREW --prefix readline`"])])
|
|
|
|
AS_IF([test "x$PLATFORM" = xosx],
|
|
[AC_CHECK_FILE([$READLINE_PREFIX/lib/libreadline.dylib],
|
|
[LIBS="-lreadline $LIBS"
|
|
AM_CPPFLAGS="-I$READLINE_PREFIX/include $AM_CPPFLAGS"
|
|
AM_LDFLAGS="-L$READLINE_PREFIX/lib $AM_LDFLAGS"
|
|
AC_SUBST(AM_LDFLAGS)],
|
|
[AC_MSG_ERROR([libreadline is required for profanity. Install it with Homebrew, MacPorts, or manually into /usr/local])])],
|
|
|
|
[test "x$PLATFORM" = xopenbsd],
|
|
[AC_CHECK_FILE([/usr/local/include/ereadline],
|
|
[LIBS="-lereadline $LIBS"
|
|
AM_CPPFLAGS="-I/usr/local/include/ereadline $AM_CFLAGS"
|
|
AM_LDFLAGS="-L/usr/local/lib $AM_LDFLAGS"
|
|
AC_SUBST(AM_LDFLAGS)])],
|
|
|
|
[AC_CHECK_LIB([readline], [main], [],
|
|
[AC_MSG_ERROR([libreadline is required for profanity])])])
|
|
|
|
## Check for optional dependencies depending on feature flags
|
|
|
|
dnl feature: icons-and-clipboard
|
|
AS_IF([test "x$enable_icons_and_clipboard" != xno],
|
|
[PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.24.0],
|
|
[AC_DEFINE([HAVE_GTK], [1], [libgtk module])
|
|
GTK_VERSION=`pkg-config --modversion gtk+-3.0`],
|
|
[AS_IF([test "x$enable_icons_and_clipboard" = xyes],
|
|
[PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.24.10],
|
|
[AC_DEFINE([HAVE_GTK], [1], [libgtk module])],
|
|
[AC_MSG_ERROR([gtk+-2.0 >= 2.24.10 or gtk+-3.0 >= 3.24.0 is required for icons and clipboard])],
|
|
[AC_MSG_NOTICE([gtk+-3.0/gtk+2.0 not found, icons and clipboard not enabled])])])])])
|
|
|
|
ICONS_PATH='${pkgdatadir}/icons'
|
|
AC_SUBST(ICONS_PATH)
|
|
|
|
dnl feature: notifications
|
|
|
|
## Check for desktop notification support
|
|
## Linux/FreeBSD require libnotify
|
|
## Windows uses native OS calls
|
|
## OSX requires terminal-notifier
|
|
|
|
AS_IF([test "x$PLATFORM" = xosx],
|
|
[AS_IF([test "x$enable_notifications" != xno],
|
|
[NOTIFIER_PATH="no"
|
|
AC_PATH_PROG(NOTIFIER_PATH, terminal-notifier, no)
|
|
AS_IF([test "x$NOTIFIER_PATH" = xno],
|
|
[AS_IF([test "x$enable_notifications" = xyes],
|
|
[AC_MSG_ERROR([terminal-notifier not found, required for desktop notifications.])],
|
|
[AC_MSG_NOTICE([Desktop notifications not supported.])])],
|
|
[AC_DEFINE([HAVE_OSXNOTIFY], [1], [terminal notifier])])])],
|
|
[test "x$PLATFORM" = xnix -o "x$PLATFORM" = xfreebsd],
|
|
[AS_IF([test "x$enable_notifications" != xno],
|
|
[PKG_CHECK_MODULES([libnotify], [libnotify],
|
|
[AC_DEFINE([HAVE_LIBNOTIFY], [1], [libnotify module])],
|
|
[AS_IF([test "x$enable_notifications" = xyes],
|
|
[AC_MSG_ERROR([libnotify is required but does not exist])],
|
|
[AC_MSG_NOTICE([libnotify support will be disabled])])])])])
|
|
|
|
dnl feature: xscreensaver
|
|
AS_IF([test "x$with_xscreensaver" != xno],
|
|
[PKG_CHECK_MODULES([xscrnsaver], [xscrnsaver x11],
|
|
[AC_MSG_NOTICE([xscreensaver support is enabled]);
|
|
LIBS="$xscrnsaver_LIBS $LIBS" CFLAGS="$CFLAGS $xscrnsaver_CFLAGS"
|
|
AC_DEFINE([HAVE_LIBXSS], [1], [xscreensaver support])],
|
|
[AS_IF([test "x$with_xscreensaver" = xyes],
|
|
[AC_MSG_ERROR([xscreensaver is required but does not exist])],
|
|
[AC_MSG_NOTICE([xscreensaver support is disabled])])])])
|
|
|
|
dnl feature: pgp
|
|
AM_CONDITIONAL([BUILD_PGP], [false])
|
|
if test "x$enable_pgp" != xno; then
|
|
AC_CHECK_LIB([gpgme], [main],
|
|
[AM_CONDITIONAL([BUILD_PGP], [true])
|
|
AC_DEFINE([HAVE_LIBGPGME], [1], [Have libgpgme])
|
|
AC_PATH_PROG([GPGME_CONFIG], [gpgme-config], ["failed"])
|
|
AS_IF([test "x$GPGME_CONFIG" = xfailed],
|
|
[LIBS="-lgpgme $LIBS"],
|
|
[LIBS="`$GPGME_CONFIG --libs` $LIBS" AM_CFLAGS="`$GPGME_CONFIG --cflags` $AM_CFLAGS"])],
|
|
[AS_IF([test "x$enable_pgp" = xyes],
|
|
[AC_MSG_ERROR([libgpgme is required for pgp support])],
|
|
[AC_MSG_NOTICE([libgpgme not found, pgp support not enabled])])])
|
|
fi
|
|
|
|
dnl feature: otr
|
|
AM_CONDITIONAL([BUILD_OTR], [false])
|
|
if test "x$enable_otr" != xno; then
|
|
AM_CONDITIONAL([BUILD_OTR], [true])
|
|
|
|
PKG_CHECK_MODULES([libotr], [libotr >= 4.0],
|
|
[LIBS="$libotr_LIBS $LIBS" CFLAGS="$libotr_CFLAGS $CFLAGS"],
|
|
[AM_CONDITIONAL([BUILD_OTR], [false])
|
|
AS_IF([test "x$enable_otr" = xyes],
|
|
[AC_MSG_ERROR([libotr >= 4.0 is required for OTR support])],
|
|
[AC_MSG_NOTICE([libotr >= 4.0 not found, OTR support not enabled])])])
|
|
|
|
AM_COND_IF([BUILD_OTR], [AC_DEFINE([HAVE_LIBOTR], [1], [Have libotr])])
|
|
fi
|
|
|
|
dnl feature: pixbuf / used for scaling avatars before uploading via `/avatar set`
|
|
AS_IF([test "x$enable_gdk_pixbuf" != xno],
|
|
[PKG_CHECK_MODULES([gdk_pixbuf], [gdk-pixbuf-2.0 >= 2.4],
|
|
[AC_DEFINE([HAVE_PIXBUF], [1], [gdk-pixbuf module])
|
|
LIBS="$gdk_pixbuf_LIBS $LIBS" CFLAGS="$gdk_pixbuf_CFLAGS $CFLAGS"],
|
|
[AS_IF([test "x$enable_gdk_pixbuf" = xyes],
|
|
[AC_MSG_ERROR([gdk-pixbuf-2.0 >= 2.4 is required to scale avatars before uploading])],
|
|
[AC_MSG_NOTICE([gdk-pixbuf-2.0 >= 2.4 not found, GDK Pixbuf support not enabled])])])])
|
|
|
|
dnl feature: omemo
|
|
AM_CONDITIONAL([BUILD_OMEMO], [false])
|
|
if test "x$enable_omemo" != xno; then
|
|
OMEMO_LIBS=""
|
|
PKG_CHECK_MODULES([libsignal], [libsignal-protocol-c >= 2.3.2],
|
|
[OMEMO_LIBS="$libsignal_LIBS"
|
|
PKG_CHECK_MODULES([gcrypt], [libgcrypt >= 1.7.0],
|
|
[OMEMO_LIBS="$gcrypt_LIBS $OMEMO_LIBS"
|
|
AM_CONDITIONAL([BUILD_OMEMO], [true])],
|
|
[AC_MSG_NOTICE([gcrypt >= 1.7.0 not found, OMEMO support not enabled])])],
|
|
[AC_MSG_NOTICE([libsignal-protocol-c >= 2.3.2 not found, OMEMO support not enabled])])
|
|
|
|
AM_COND_IF([BUILD_OMEMO],
|
|
[AC_DEFINE([HAVE_OMEMO], [1], [Have OMEMO])
|
|
LIBS="$OMEMO_LIBS $LIBS"],
|
|
[AS_IF([test "x$enable_omemo" = xyes],
|
|
[AC_MSG_ERROR([OMEMO support requires a library which is missed])])])
|
|
fi
|
|
|
|
dnl feature: themes
|
|
AS_IF([test "x$with_themes" = xno],
|
|
[THEMES_INSTALL="false"],
|
|
[THEMES_INSTALL="true"])
|
|
AS_IF([test "x$with_themes" = xno -o "x$with_themes" = xyes -o "x$with_themes" = x],
|
|
[THEMES_PATH='${pkgdatadir}/themes'],
|
|
[THEMES_PATH="$with_themes"])
|
|
AC_SUBST(THEMES_PATH)
|
|
AM_CONDITIONAL([THEMES_INSTALL], "$THEMES_INSTALL")
|
|
|
|
if test "x$enable_omemo_qrcode" != xno; then
|
|
PKG_CHECK_MODULES([libqrencode], [libqrencode],
|
|
[AC_DEFINE([HAVE_QRENCODE], [1], [Have QRencode]) LIBS="$libqrencode_LIBS $LIBS" CFLAGS="$libqrencode_CFLAGS $CFLAGS"],
|
|
[AS_IF([test "x$enable_qrcode" = xyes],
|
|
[AC_MSG_ERROR([libqrencode not found])],
|
|
[AC_MSG_NOTICE([librencode not found])])])
|
|
fi
|
|
|
|
## Tests
|
|
|
|
# cmocka is required only for tests, profanity shouldn't be linked with it
|
|
# TODO: pass cmocka_CFLAGS and cmocka_LIBS to Makefile.am
|
|
PKG_CHECK_MODULES([cmocka], [cmocka], [],
|
|
[AC_MSG_NOTICE([cmocka is not found, will not be able to run tests])])
|
|
|
|
AM_CONDITIONAL([HAVE_STABBER], [false])
|
|
AC_CHECK_LIB([stabber], [stbbr_start], [AM_CONDITIONAL([HAVE_STABBER], [true])],
|
|
[AC_MSG_NOTICE([libstabber not found, will not be able to run functional tests])])
|
|
AM_CONDITIONAL([HAVE_UTIL], [false])
|
|
AC_CHECK_LIB([util], [forkpty], [AM_CONDITIONAL([HAVE_UTIL], [true])],
|
|
[AC_MSG_NOTICE([libutil not found, will not be able to run functional tests])])
|
|
|
|
## Default parameters
|
|
AM_CFLAGS="$AM_CFLAGS -Wall -Wno-deprecated-declarations -std=gnu99 -ggdb3"
|
|
AM_LDFLAGS="$AM_LDFLAGS -export-dynamic"
|
|
|
|
AS_IF([test "x$PACKAGE_STATUS" = xdevelopment],
|
|
[AM_CFLAGS="$AM_CFLAGS -Wunused -Werror"])
|
|
AS_IF([test "x$PLATFORM" = xosx],
|
|
[AM_CFLAGS="$AM_CFLAGS -Qunused-arguments"])
|
|
|
|
AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS $glib_CFLAGS $gio_CFLAGS $curl_CFLAGS ${SQLITE_CFLAGS}"
|
|
AM_CFLAGS="$AM_CFLAGS $libnotify_CFLAGS ${GTK_CFLAGS} $python_CFLAGS"
|
|
AM_CFLAGS="$AM_CFLAGS -DTHEMES_PATH=\"\\\"$THEMES_PATH\\\"\" -DICONS_PATH=\"\\\"$ICONS_PATH\\\"\" -DGLOBAL_PYTHON_PLUGINS_PATH=\"\\\"$GLOBAL_PYTHON_PLUGINS_PATH\\\"\" -DGLOBAL_C_PLUGINS_PATH=\"\\\"$GLOBAL_C_PLUGINS_PATH\\\"\""
|
|
AM_CFLAGS="$AM_CFLAGS $CFLAGS"
|
|
LIBS="$glib_LIBS $gio_LIBS $PTHREAD_LIBS $curl_LIBS $libnotify_LIBS $python_LIBS ${GTK_LIBS} ${SQLITE_LIBS} $LIBS"
|
|
|
|
AC_SUBST(AM_LDFLAGS)
|
|
AC_SUBST(AM_CFLAGS)
|
|
AC_SUBST(AM_CPPFLAGS)
|
|
AC_SUBST(GTK_VERSION)
|
|
|
|
## Output
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_OUTPUT
|
|
|
|
AC_MSG_NOTICE([Summary of build options:
|
|
PLATFORM : $target_os
|
|
PACKAGE_STATUS : $PACKAGE_STATUS
|
|
GTK_VERSION : $GTK_VERSION
|
|
LIBS : $LIBS
|
|
Install themes : $THEMES_INSTALL
|
|
Themes path : $THEMES_PATH
|
|
Icons path : $ICONS_PATH
|
|
Global Python plugins path : $GLOBAL_PYTHON_PLUGINS_PATH
|
|
Global C plugins path : $GLOBAL_C_PLUGINS_PATH
|
|
CFLAGS : $AM_CFLAGS
|
|
CPPFLAGS : $AM_CPPFLAGS
|
|
LDFLAGS : $AM_LDFLAGS
|
|
LIBS : $LIBS
|
|
|
|
Run `make' to build profanity])
|
|
|
|
dnl vim: expandtab:ts=4:sts=4:sw=4
|