mirror of
https://github.com/profanity-im/profanity.git
synced 2024-11-03 19:37:16 -05:00
build: group related parts better together
This commit is contained in:
parent
9cb6fc0d23
commit
7a6a37e717
107
configure.ac
107
configure.ac
@ -65,6 +65,28 @@ AC_ARG_WITH([themes],
|
|||||||
AC_ARG_ENABLE([icons-and-clipboard],
|
AC_ARG_ENABLE([icons-and-clipboard],
|
||||||
[AS_HELP_STRING([--enable-icons-and-clipboard], [enable GTK tray icons and clipboard paste support])])
|
[AS_HELP_STRING([--enable-icons-and-clipboard], [enable GTK tray icons and clipboard paste support])])
|
||||||
|
|
||||||
|
# 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])])
|
||||||
|
|
||||||
|
ACX_PTHREAD([], [AC_MSG_ERROR([pthread is required])])
|
||||||
|
AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ])
|
||||||
|
|
||||||
### plugins
|
### plugins
|
||||||
|
|
||||||
## python
|
## python
|
||||||
@ -125,14 +147,6 @@ else
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### Check for dependencies
|
|
||||||
|
|
||||||
## Threading
|
|
||||||
AX_PTHREAD([],[AC_MSG_ERROR([pthread is required])])
|
|
||||||
LIBS="$PTHREAD_LIBS $LIBS"
|
|
||||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
|
||||||
AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ])
|
|
||||||
|
|
||||||
## Check for libstrophe
|
## Check for libstrophe
|
||||||
PKG_CHECK_MODULES([libstrophe], [libstrophe >= 0.11.0],
|
PKG_CHECK_MODULES([libstrophe], [libstrophe >= 0.11.0],
|
||||||
[LIBS="$libstrophe_LIBS $LIBS" CFLAGS="$CFLAGS $libstrophe_CFLAGS" XMPP_LIB="libstrophe" AC_DEFINE([HAVE_LIBSTROPHE], [1], [libstrophe])],
|
[LIBS="$libstrophe_LIBS $LIBS" CFLAGS="$CFLAGS $libstrophe_CFLAGS" XMPP_LIB="libstrophe" AC_DEFINE([HAVE_LIBSTROPHE], [1], [libstrophe])],
|
||||||
@ -182,31 +196,10 @@ CFLAGS="$CFLAGS_RESTORE"
|
|||||||
AS_IF([test "x$ncurses_cv_wget_wch" != xyes],
|
AS_IF([test "x$ncurses_cv_wget_wch" != xyes],
|
||||||
[AC_MSG_ERROR([ncurses does not support wide characters])])
|
[AC_MSG_ERROR([ncurses does not support wide characters])])
|
||||||
|
|
||||||
## Check for glib libraries
|
## Check for ncursesw/ncurses.h first, Arch linux uses ncurses.h for ncursesw
|
||||||
PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.62.0], [],
|
AC_CHECK_HEADERS([ncursesw/ncurses.h], [], [])
|
||||||
[AC_MSG_ERROR([glib 2.62.0 or higher is required])])
|
AC_CHECK_HEADERS([ncurses.h], [], [])
|
||||||
PKG_CHECK_MODULES([gio], [gio-2.0], [],
|
AC_CHECK_HEADERS([curses.h], [], [])
|
||||||
[AC_MSG_ERROR([libgio-2.0 from glib-2.0 is required])])
|
|
||||||
|
|
||||||
## Check for other profanity dependencies
|
|
||||||
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])])
|
|
||||||
|
|
||||||
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])],
|
|
||||||
[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])])])])])
|
|
||||||
|
|
||||||
# Check for readline
|
# Check for readline
|
||||||
AS_IF([test "x$PLATFORM" = xosx],
|
AS_IF([test "x$PLATFORM" = xosx],
|
||||||
@ -236,7 +229,22 @@ AS_IF([test "x$PLATFORM" = xosx],
|
|||||||
[AC_CHECK_LIB([readline], [main], [],
|
[AC_CHECK_LIB([readline], [main], [],
|
||||||
[AC_MSG_ERROR([libreadline is required for profanity])])])
|
[AC_MSG_ERROR([libreadline is required for profanity])])])
|
||||||
|
|
||||||
## Check for optional dependencies
|
## 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])],
|
||||||
|
[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
|
## Check for desktop notification support
|
||||||
## Linux/FreeBSD require libnotify
|
## Linux/FreeBSD require libnotify
|
||||||
@ -260,6 +268,8 @@ AS_IF([test "x$PLATFORM" = xosx],
|
|||||||
[AC_MSG_ERROR([libnotify is required but does not exist])],
|
[AC_MSG_ERROR([libnotify is required but does not exist])],
|
||||||
[AC_MSG_NOTICE([libnotify support will be disabled])])])])])
|
[AC_MSG_NOTICE([libnotify support will be disabled])])])])])
|
||||||
|
|
||||||
|
dnl feature: xscreensaver
|
||||||
|
|
||||||
# TODO: rewrite this
|
# TODO: rewrite this
|
||||||
if test "x$with_xscreensaver" = xyes; then
|
if test "x$with_xscreensaver" = xyes; then
|
||||||
AC_CHECK_LIB([Xss], [main], [],
|
AC_CHECK_LIB([Xss], [main], [],
|
||||||
@ -273,6 +283,7 @@ elif test "x$with_xscreensaver" = x; then
|
|||||||
[AC_MSG_NOTICE([libX11 not found, falling back to profanity auto-away])])
|
[AC_MSG_NOTICE([libX11 not found, falling back to profanity auto-away])])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl feature: pgp
|
||||||
AM_CONDITIONAL([BUILD_PGP], [false])
|
AM_CONDITIONAL([BUILD_PGP], [false])
|
||||||
if test "x$enable_pgp" != xno; then
|
if test "x$enable_pgp" != xno; then
|
||||||
AC_CHECK_LIB([gpgme], [main],
|
AC_CHECK_LIB([gpgme], [main],
|
||||||
@ -287,6 +298,7 @@ if test "x$enable_pgp" != xno; then
|
|||||||
[AC_MSG_NOTICE([libgpgme not found, pgp support not enabled])])])
|
[AC_MSG_NOTICE([libgpgme not found, pgp support not enabled])])])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl feature: otr
|
||||||
AM_CONDITIONAL([BUILD_OTR], [false])
|
AM_CONDITIONAL([BUILD_OTR], [false])
|
||||||
AM_CONDITIONAL([BUILD_OTR3], [false])
|
AM_CONDITIONAL([BUILD_OTR3], [false])
|
||||||
AM_CONDITIONAL([BUILD_OTR4], [false])
|
AM_CONDITIONAL([BUILD_OTR4], [false])
|
||||||
@ -307,6 +319,7 @@ if test "x$enable_otr" != xno; then
|
|||||||
[AC_MSG_NOTICE([libotr not found, otr encryption support not enabled])])])
|
[AC_MSG_NOTICE([libotr not found, otr encryption support not enabled])])])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl feature: omemo
|
||||||
AM_CONDITIONAL([BUILD_OMEMO], [false])
|
AM_CONDITIONAL([BUILD_OMEMO], [false])
|
||||||
if test "x$enable_omemo" != xno; then
|
if test "x$enable_omemo" != xno; then
|
||||||
AM_CONDITIONAL([BUILD_OMEMO], [true])
|
AM_CONDITIONAL([BUILD_OMEMO], [true])
|
||||||
@ -331,6 +344,7 @@ if test "x$enable_omemo" != xno; then
|
|||||||
AM_COND_IF([BUILD_OMEMO], [AC_DEFINE([HAVE_OMEMO], [1], [Have OMEMO])])
|
AM_COND_IF([BUILD_OMEMO], [AC_DEFINE([HAVE_OMEMO], [1], [Have OMEMO])])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl feature: themes
|
||||||
AS_IF([test "x$with_themes" = xno],
|
AS_IF([test "x$with_themes" = xno],
|
||||||
[THEMES_INSTALL="false"],
|
[THEMES_INSTALL="false"],
|
||||||
[THEMES_INSTALL="true"])
|
[THEMES_INSTALL="true"])
|
||||||
@ -340,11 +354,10 @@ AS_IF([test "x$with_themes" = xno -o "x$with_themes" = xyes -o "x$with_themes" =
|
|||||||
AC_SUBST(THEMES_PATH)
|
AC_SUBST(THEMES_PATH)
|
||||||
AM_CONDITIONAL([THEMES_INSTALL], "$THEMES_INSTALL")
|
AM_CONDITIONAL([THEMES_INSTALL], "$THEMES_INSTALL")
|
||||||
|
|
||||||
ICONS_PATH='${pkgdatadir}/icons'
|
## Tests
|
||||||
AC_SUBST(ICONS_PATH)
|
|
||||||
|
|
||||||
## cmocka is required only for tests, profanity shouldn't be linked with it
|
# cmocka is required only for tests, profanity shouldn't be linked with it
|
||||||
## TODO: pass cmocka_CFLAGS and cmocka_LIBS to Makefile.am
|
# TODO: pass cmocka_CFLAGS and cmocka_LIBS to Makefile.am
|
||||||
PKG_CHECK_MODULES([cmocka], [cmocka], [],
|
PKG_CHECK_MODULES([cmocka], [cmocka], [],
|
||||||
[AC_MSG_NOTICE([cmocka is not found, will not be able to run tests])])
|
[AC_MSG_NOTICE([cmocka is not found, will not be able to run tests])])
|
||||||
|
|
||||||
@ -355,29 +368,25 @@ AM_CONDITIONAL([HAVE_EXPECT], [false])
|
|||||||
AC_CHECK_LIB([expect], [exp_expectl], [AM_CONDITIONAL([HAVE_EXPECT], [true])],
|
AC_CHECK_LIB([expect], [exp_expectl], [AM_CONDITIONAL([HAVE_EXPECT], [true])],
|
||||||
[AC_MSG_NOTICE([libexpect not found, will not be able to run functional tests])])
|
[AC_MSG_NOTICE([libexpect not found, will not be able to run functional tests])])
|
||||||
|
|
||||||
## 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], [], [])
|
|
||||||
|
|
||||||
## Default parameters
|
## Default parameters
|
||||||
AM_CFLAGS="-Wall -Wno-deprecated-declarations -std=gnu99"
|
AM_CFLAGS="-Wall -Wno-deprecated-declarations -std=gnu99"
|
||||||
|
AM_LDFLAGS="$AM_LDFLAGS -export-dynamic"
|
||||||
|
|
||||||
AS_IF([test "x$PACKAGE_STATUS" = xdevelopment],
|
AS_IF([test "x$PACKAGE_STATUS" = xdevelopment],
|
||||||
[AM_CFLAGS="$AM_CFLAGS -Wunused -Werror"])
|
[AM_CFLAGS="$AM_CFLAGS -Wunused -Werror"])
|
||||||
AS_IF([test "x$PLATFORM" = xosx],
|
AS_IF([test "x$PLATFORM" = xosx],
|
||||||
[AM_CFLAGS="$AM_CFLAGS -Qunused-arguments"])
|
[AM_CFLAGS="$AM_CFLAGS -Qunused-arguments"])
|
||||||
AM_LDFLAGS="$AM_LDFLAGS -export-dynamic"
|
|
||||||
|
AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS"
|
||||||
AM_CPPFLAGS="$AM_CPPFLAGS $glib_CFLAGS $gio_CFLAGS $curl_CFLAGS $libnotify_CFLAGS $PYTHON_CPPFLAGS ${GTK_CFLAGS} ${SQLITE_CFLAGS}"
|
AM_CPPFLAGS="$AM_CPPFLAGS $glib_CFLAGS $gio_CFLAGS $curl_CFLAGS $libnotify_CFLAGS $PYTHON_CPPFLAGS ${GTK_CFLAGS} ${SQLITE_CFLAGS}"
|
||||||
AM_CPPFLAGS="$AM_CPPFLAGS -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_CPPFLAGS="$AM_CPPFLAGS -DTHEMES_PATH=\"\\\"$THEMES_PATH\\\"\" -DICONS_PATH=\"\\\"$ICONS_PATH\\\"\" -DGLOBAL_PYTHON_PLUGINS_PATH=\"\\\"$GLOBAL_PYTHON_PLUGINS_PATH\\\"\" -DGLOBAL_C_PLUGINS_PATH=\"\\\"$GLOBAL_C_PLUGINS_PATH\\\"\""
|
||||||
LIBS="$glib_LIBS $gio_LIBS $curl_LIBS $libnotify_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_LDFLAGS ${GTK_LIBS} ${SQLITE_LIBS} $LIBS"
|
LIBS="$glib_LIBS $gio_LIBS $PTHREAD_LIBS $curl_LIBS $libnotify_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_LDFLAGS ${GTK_LIBS} ${SQLITE_LIBS} $LIBS"
|
||||||
|
|
||||||
AC_SUBST(AM_LDFLAGS)
|
AC_SUBST(AM_LDFLAGS)
|
||||||
AC_SUBST(AM_CFLAGS)
|
AC_SUBST(AM_CFLAGS)
|
||||||
AC_SUBST(AM_CPPFLAGS)
|
AC_SUBST(AM_CPPFLAGS)
|
||||||
|
|
||||||
## Checks for library functions.
|
## Output
|
||||||
AC_CHECK_FUNCS([atexit memset strdup strstr])
|
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile])
|
AC_CONFIG_FILES([Makefile])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
@ -395,6 +404,6 @@ CPPFLAGS : $AM_CPPFLAGS
|
|||||||
LDFLAGS : $AM_LDFLAGS
|
LDFLAGS : $AM_LDFLAGS
|
||||||
LIBS : $LIBS
|
LIBS : $LIBS
|
||||||
|
|
||||||
Now you can run \`make' to build profanity])
|
Run `make' to build profanity])
|
||||||
|
|
||||||
dnl vim: expandtab:ts=4:sts=4:sw=4
|
dnl vim: expandtab:ts=4:sts=4:sw=4
|
||||||
|
Loading…
Reference in New Issue
Block a user