ibus/configure.ac

886 строки
27 KiB
Plaintext

# vim:set et ts=4:
#
# ibus - The Input Bus
#
# Copyright (c) 2007-2016 Peng Huang <shawn.p.huang@gmail.com>
# Copyright (c) 2015-2022 Takao Fujiwara <takao.fujiwara1@gmail.com>
# Copyright (c) 2007-2022 Red Hat, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
# USA
# If ibus_released is 0, append datestamp to the version number.
m4_define([ibus_released], [1])
m4_define([ibus_major_version], [1])
m4_define([ibus_minor_version], [5])
m4_define([ibus_micro_version], [26])
m4_define([ibus_abi_current], [5])
m4_define([ibus_abi_revision],
[m4_eval(100 * ibus_minor_version + ibus_micro_version)])
m4_define([ibus_abi_age], [0])
m4_define([ibus_maybe_datestamp],
m4_esyscmd([test x]ibus_released[ != x1 && date +.%Y%m%d | tr -d '\n\r']))
m4_define([ibus_version],
ibus_major_version.ibus_minor_version.ibus_micro_version[]ibus_maybe_datestamp)
m4_define([ibus_api_version], [ibus_major_version.0])
AC_PREFEQ([2.62])
AC_INIT([ibus], [ibus_version],
[https://github.com/ibus/ibus/issues],
[ibus])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
m4_define([ibus_abi_current_minus_age],
[m4_eval(ibus_abi_current - ibus_abi_age)])
m4_define([ibus_binary_version],
[ibus_major_version.ibus_abi_current_minus_age.ibus_abi_age.ibus_abi_revision])
# Required versions of other packages.
m4_define([glib_required_version], [2.46.0])
m4_define([gtk3_required_version], [3.12.0])
# VALA_TARGET_GLIB_VERSION is used by valac --ccode --target-glib .
# VALA_TARGET_GLIB_VERSION and glib_required_version will be different
# in the future.
VALA_TARGET_GLIB_VERSION=2.46
AC_SUBST(VALA_TARGET_GLIB_VERSION)
# Init automake.
AM_INIT_AUTOMAKE([1.11.1 parallel-tests])
AM_MAINTAINER_MODE([enable])
AC_GNU_SOURCE
# Support silent build rules. Disable
# by either passing --disable-silent-rules to configure or passing V=1
# to make
AM_SILENT_RULES([yes])
# Define sustituted variables:
IBUS_MAJOR_VERSION=ibus_major_version
IBUS_MINOR_VERSION=ibus_minor_version
IBUS_MICRO_VERSION=ibus_micro_version
IBUS_ABI_CURRENT=ibus_abi_current
IBUS_ABI_REVISION=ibus_abi_revision
IBUS_ABI_AGE=ibus_abi_age
IBUS_VERSION=ibus_version
IBUS_API_VERSION=ibus_api_version
IBUS_BINARY_VERSION=ibus_binary_version
AC_SUBST(IBUS_MAJOR_VERSION)
AC_SUBST(IBUS_MINOR_VERSION)
AC_SUBST(IBUS_MICRO_VERSION)
AC_SUBST(IBUS_ABI_CURRENT)
AC_SUBST(IBUS_ABI_REVISION)
AC_SUBST(IBUS_ABI_AGE)
AC_SUBST(IBUS_API_VERSION)
AC_SUBST(IBUS_VERSION)
AC_SUBST(IBUS_BINARY_VERSION)
# libtool versioning
#
# If LT_VERSION_INFO="lt_current:lt_revision:lt_age", libibus is
# libibus-ibus_api_version.so.(lt_current - lt_age).lt_age.lt_revision
# If the abi is changed, but it is compatible with last version,
# ibus_abi_current++, ibus_abi_age++;
# If the abi is not compatible with last version,
# ibus_abi_current++, ibus_abi_age = 0;
m4_define([lt_current], [ibus_abi_current])
m4_define([lt_revision], [ibus_abi_revision])
m4_define([lt_age], [ibus_abi_age])
LT_VERSION_INFO="lt_current:lt_revision:lt_age"
LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
AC_SUBST(LT_VERSION_INFO)
AC_SUBST(LT_CURRENT_MINUS_AGE)
# Define GETTEXT_* variables.
GETTEXT_PACKAGE=ibus10
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for out gettext translation domains.])
DEFINE_IBUS_LOCALEDIR
AC_DEFINE_UNQUOTED(LOCALEDIR, "$ibus_localedir",
[Define the location where the catalogs will be installed])
# For dislpay date.
m4_define(ibus_datedisplay,
m4_esyscmd(date '+%a %b %d %Y' | tr -d '\n\r'))
DATE_DISPLAY="ibus_datedisplay"
AC_SUBST(DATE_DISPLAY)
# Check for programs.
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_CC_STDC
AM_PROG_VALAC([0.20])
AC_PROG_INSTALL
AC_PROG_MAKE_SET
# i18n stuff
AM_GNU_GETTEXT_VERSION([0.19.8])
AM_GNU_GETTEXT([external])
# Define PACKAGE_VERSION_* variables.
AM_DISABLE_STATIC
AC_ISC_POSIX
AC_HEADER_STDC
LT_INIT
# Check header filess.
AC_CHECK_HEADERS([sys/prctl.h])
# Check functions.
AC_CHECK_FUNCS(daemon)
# Check packages.
# Check glib2.
AM_PATH_GLIB_2_0
PKG_CHECK_MODULES(GLIB2, [
glib-2.0 >= glib_required_version
])
PKG_CHECK_MODULES(GOBJECT2, [
gobject-2.0 >= glib_required_version
])
PKG_CHECK_MODULES(GIO2, [
gio-2.0 gio-unix-2.0 >= glib_required_version
])
PKG_CHECK_MODULES(GTHREAD2, [
gthread-2.0 >= glib_required_version
])
PKG_CHECK_EXISTS(
[glib-2.0 >= 2.65.0],
[AC_DEFINE(GLIB2_EMBED_ERRNO_H, TRUE, [glib2 include errno.h])]
)
AH_BOTTOM([
#ifndef GLIB2_EMBED_ERRNO_H
# include <errno.h>
#endif
])
# --disable-tests option.
AC_ARG_ENABLE(tests,
AS_HELP_STRING([--disable-tests],
[Do not run tests]),
[enable_tests=$enableval],
[enable_tests=yes]
)
AM_CONDITIONAL([ENABLE_TESTS], [test x"$enable_tests" = x"yes"])
if test x"$enable_tests" != x"yes"; then
enable_tests="no (disabled, use --enable-tests to enable)"
fi
# --disable-gtk2 option.
AC_ARG_ENABLE(gtk2,
AS_HELP_STRING([--disable-gtk2],
[Do not build gtk2 im module]),
[enable_gtk2=$enableval],
[enable_gtk2=yes]
)
AM_CONDITIONAL([ENABLE_GTK2], [test x"$enable_gtk2" = x"yes"])
# --disable-gtk3 option.
AC_ARG_ENABLE(gtk3,
AS_HELP_STRING([--disable-gtk3],
[Do not build gtk3 im module]),
[enable_gtk3=$enableval],
[enable_gtk3=yes]
)
AM_CONDITIONAL([ENABLE_GTK3], [test x"$enable_gtk3" = x"yes"])
# --enable-gtk4 option.
AC_ARG_ENABLE(gtk4,
AS_HELP_STRING([--enable-gtk4],
[Build gtk4 im module]),
[enable_gtk4=$enableval],
[enable_gtk4=no]
)
AM_CONDITIONAL([ENABLE_GTK4], [test x"$enable_gtk4" = x"yes"])
# --disable-xim option.
AC_ARG_ENABLE(xim,
AS_HELP_STRING([--disable-xim],
[Do not build xim server]),
[enable_xim=$enableval],
[enable_xim=yes]
)
AM_CONDITIONAL([ENABLE_XIM], [test x"$enable_xim" = x"yes"])
if test x"$enable_xim" = x"yes"; then
AC_SUBST([XIM_CLI_ARG], [--xim])
fi
# --enable-wayland option.
AC_ARG_ENABLE(wayland,
AS_HELP_STRING([--enable-wayland],
[Build wayland support]),
[enable_wayland=$enableval],
[enable_wayland=no]
)
AM_CONDITIONAL([ENABLE_WAYLAND], [test x"$enable_wayland" = x"yes"])
# --enable-appindicator option.
AC_ARG_ENABLE(appindicator,
AS_HELP_STRING([--enable-appindicator],
[Build appindicator support]),
[enable_appindicator=$enableval],
[enable_appindicator=yes]
)
AM_CONDITIONAL([ENABLE_APPINDICATOR], [test x"$enable_appindicator" = x"yes"])
if test x"$enable_gtk2" = x"yes"; then
# check for gtk2
PKG_CHECK_MODULES(GTK2, [
gtk+-2.0
])
gtk2_binary_version=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
GTK2_IM_MODULEDIR="$libdir"/gtk-2.0/$gtk2_binary_version/immodules
else
enable_gtk2="no (disabled, use --enable-gtk2 to enable)"
fi
if test x"$enable_gtk3" = x"yes"; then
# check for gtk3
PKG_CHECK_MODULES(GTK3, [
gtk+-3.0 >= gtk3_required_version
])
PKG_CHECK_EXISTS([gdk-wayland-3.0],
[enable_gdk3_wayland=yes],
[enable_gdk3_wayland=no]
)
gtk3_binary_version=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
GTK3_IM_MODULEDIR="$libdir"/gtk-3.0/$gtk3_binary_version/immodules
else
enable_gtk3="no (disabled, use --enable-gtk3 to enable)"
enable_gdk3_wayland=no
fi
if test x"$enable_gdk3_wayland" != x"yes"; then
enable_gdk3_wayland="no (disabled, need to install gdk-wayland-3.0.pc)"
fi
AM_CONDITIONAL([ENABLE_GDK3_WAYLAND], [test x"$enable_gdk3_wayland" = x"yes"])
if test x"$enable_gtk4" = x"yes"; then
# check for gtk4
PKG_CHECK_MODULES(GTK4, [
gtk4
])
gtk4_binary_version=`$PKG_CONFIG --variable=gtk_binary_version gtk4`
GTK4_IM_MODULEDIR="$libdir"/gtk-4.0/$gtk4_binary_version/immodules
else
enable_gtk4="no (disabled, use --enable-gtk4 to enable)"
fi
if test x"$enable_xim" = x"yes"; then
# Check for x11
PKG_CHECK_MODULES(X11, [
x11
])
AC_CHECK_HEADERS([X11/XKBlib.h])
# if we don't have gtk3 yet, check for gtk2
if test x"$enable_gtk3" != x"yes"; then
# check for gtk2
PKG_CHECK_MODULES(GTK2, [
gtk+-2.0
])
fi
else
enable_xim="no (disabled, use --enable-xim to enable)"
fi
if $PKG_CONFIG --exists x11; then
X11_PREFIX="`$PKG_CONFIG --variable=prefix x11`"
elif test x"$prefix" != xNONE; then
X11_PREFIX="$prefix"
else
X11_PREFIX="$ac_default_prefix"
fi
AC_SUBST(X11_PREFIX)
if test x"$enable_wayland" = x"yes"; then
# Check for wayland
PKG_CHECK_MODULES(WAYLAND, [
wayland-client >= 1.2.0
xkbcommon
])
m4_ifdef([WAYLAND_SCANNER_RULES],
[WAYLAND_PRTCLS_SUBDIR='wayland-protocols/unstable/input-method'
AC_SUBST(WAYLAND_PRTCLS_SUBDIR)
WAYLAND_SCANNER_RULES(['$(datadir)/$(WAYLAND_PRTCLS_SUBDIR)'])],
[AC_SUBST(wayland_scanner_rules)])
else
enable_wayland="no (disabled, use --enable-wayland to enable)"
AC_SUBST(wayland_scanner_rules)
fi
if test x"$enable_appindicator" = x"yes"; then
enable_appindicator="yes (enabled, use --disable-appindicator to disable)"
fi
# GObject introspection
GOBJECT_INTROSPECTION_CHECK([0.6.8])
IBUS_GIR_SCANNERFLAGS=
if test x"$found_introspection" = x"yes" ; then
IBUS_GIR_SCANNERFLAGS="--warn-all --identifier-prefix=IBus --symbol-prefix=ibus --c-include=ibus.h"
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= 0.9.6],
[gir_symbol_prefix=yes],
[gir_symbol_prefix=no])
if test x"$gir_symbol_prefix" = x"no" ; then
IBUS_GIR_SCANNERFLAGS="--strip-prefix=IBus"
fi
fi
AC_SUBST(IBUS_GIR_SCANNERFLAGS)
# Check vapigen.
VAPIGEN_CHECK([0.16])
# Check for gtk-doc.
GTK_DOC_CHECK(1.9)
if test x"$enable_gtk_doc" = x"no"; then
enable_gtk_doc="no (disabled, use --enable-gtk-doc to enable)"
fi
# Check for dbus.
PKG_CHECK_MODULES(DBUS, [
dbus-1
])
# --enable-memconf option.
AC_ARG_ENABLE(memconf,
AS_HELP_STRING([--enable-memconf],
[Enable configure base on memory]),
[enable_memconf=$enableval],
[enable_memconf=no]
)
AM_CONDITIONAL([ENABLE_MEMCONF], [test "x$enable_memconf" = "xyes"])
AC_ARG_ENABLE(dconf,
AS_HELP_STRING([--disable-dconf],
[Disable configure base on dconf]),
[enable_dconf=$enableval],
[enable_dconf=yes]
)
AM_CONDITIONAL([ENABLE_DCONF], [test x"$enable_dconf" = x"yes"])
if test x"$enable_dconf" = x"yes"; then
# check dconf
PKG_CHECK_MODULES(DCONF,
[dconf >= 0.7.5],
)
PKG_CHECK_EXISTS([dconf >= 0.13.4],
[AC_DEFINE(DCONF_0_13_4, TRUE, [dconf is 0.13.4 or later])],
[])
# check glib-compile-schemas
GLIB_GSETTINGS
enable_dconf="yes (enabled, use --disable-dconf to disable)"
fi
AC_ARG_ENABLE(systemd-services,
AS_HELP_STRING([--disable-systemd-services],
[Disable systemd services installation]),
[enable_systemd=$enableval],
[enable_systemd=yes]
)
AM_CONDITIONAL([ENABLE_SYSTEMD], [test x"$enable_systemd" = x"yes"])
if test x"$enable_systemd" = x"yes"; then
PKG_CHECK_MODULES(SYSTEMD, [
systemd >= 0.7.5
])
AC_SUBST([SYSTEMD_USER_UNIT_DIR], [`$PKG_CONFIG --variable systemduserunitdir systemd`])
enable_systemd="yes (enabled, use --disable-systemd-services to disable)"
fi
# Check env.
AC_PATH_PROG(ENV_IBUS_TEST, env)
AC_SUBST(ENV_IBUS_TEST)
AC_ARG_ENABLE(python2,
AS_HELP_STRING([--disable-python2],
[Do not install bindings/pygobject/gi and ibus for python2.
'--disable-python2' bring '--disable-python-library'.]),
[enable_python2=$enableval],
[enable_python2=yes]
)
AC_ARG_ENABLE(python-library,
AS_HELP_STRING([--enable-python-library],
[Use ibus python library]),
[enable_python_library=$enableval],
[enable_python_library=no]
)
AC_ARG_ENABLE(setup,
AS_HELP_STRING([--disable-setup],
[Do not use setup ui.]),
[enable_setup=$enableval],
[enable_setup=yes]
)
# Define python version
AC_ARG_WITH(python,
AS_HELP_STRING([--with-python[=PATH]],
[Select python2 or python3]),
[PYTHON=$with_python], []
)
AM_PATH_PYTHON([2.5])
if test x"$enable_python2" != x"yes"; then
enable_python_library=no
PYTHON2=
enable_python2="no (disabled, use --enable-python2 to enable)"
else
AC_PATH_PROG(PYTHON2, python2)
if test x"$PYTHON2" = x""; then
PYTHON2=$PYTHON
fi
fi
AM_CONDITIONAL([ENABLE_PYTHON2], [test x"$enable_python2" = x"yes"])
AM_CONDITIONAL([ENABLE_PYTHON_LIBRARY], [test x"$enable_python_library" = x"yes"])
AM_CONDITIONAL([ENABLE_SETUP], [test x"$enable_setup" = x"yes"])
AM_CONDITIONAL([ENABLE_DAEMON], [true])
PYGOBJECT_REQUIRED=3.0.0
PKG_CHECK_EXISTS([pygobject-3.0 >= $PYGOBJECT_REQUIRED],
[enable_pygobject=yes], [enable_pygobject=no])
if test "x$enable_pygobject" = "xyes"; then
PKG_CHECK_MODULES(PYTHON, [pygobject-3.0 >= $PYGOBJECT_REQUIRED])
pyoverridesdir=`$PYTHON -c "import gi; print(gi._overridesdir)"`
AC_SUBST(pyoverridesdir)
if test x"$enable_python2" = x"yes"; then
py2overridesdir=`$PYTHON2 -c "import gi; print(gi._overridesdir)"`
AC_SUBST(py2overridesdir)
fi
fi
AM_CONDITIONAL(ENABLE_PYGOBJECT, test x"$enable_pygobject" = "xyes")
if test x"$enable_python_library" = x"yes"; then
# Check python.
AC_PATH_PROG(PYTHON_CONFIG, python$PYTHON_VERSION-config)
if test x"$PYTHON_CONFIG" = x""; then
AC_PATH_PROG(PYTHON_CONFIG, python-config)
fi
if test x"$PYTHON_CONFIG" != x""; then
PYTHON_CFLAGS=`$PYTHON_CONFIG --includes`
PYTHON_LIBS=`$PYTHON_CONFIG --libs`
else
PYTHON_CFLAGS=`$PYTHON $srcdir/python-config.py --includes`
PYTHON_LIBS=`$PYTHON $srcdir/python-config.py --libs`
fi
PYTHON_INCLUDES="$PYTHON_CFLAGS"
AC_SUBST(PYTHON_CFLAGS)
AC_SUBST(PYTHON_INCLUDES)
AC_SUBST(PYTHON_LIBS)
PYTHON2_PREFIX=`$PYTHON2 -c "import sys; sys.stdout.write(sys.prefix)"`
PYTHON2_VERSION=`$PYTHON2 -c "import sys; sys.stdout.write(sys.version[[:3]])"`
PYTHON2_LIBDIR="$PYTHON2_PREFIX/lib/python$PYTHON2_VERSION"
python2dir="$PYTHON2_LIBDIR/site-packages"
pkgpython2dir="$python2dir/ibus"
AC_SUBST(pkgpython2dir)
else
enable_python_library="no (disabled, use --enable-python-library to enable)"
fi
# Define gtk2 immodule dir.
AC_ARG_WITH(gtk2-im-module-dir,
AS_HELP_STRING([--with-gtk2-im-module-dir[=DIR]],
[Select gtk2 immodule dir]),
GTK2_IM_MODULEDIR=$with_gtk2_im_module_dir
)
AC_SUBST(GTK2_IM_MODULEDIR)
# Define gtk3 immodule dir.
AC_ARG_WITH(gtk3-im-module-dir,
AS_HELP_STRING([--with-gtk3-im-module-dir[=DIR]],
[Select gtk3 immodule dir]),
GTK3_IM_MODULEDIR=$with_gtk3_im_module_dir
)
AC_SUBST(GTK3_IM_MODULEDIR)
# Define gtk4 immodule dir.
AC_ARG_WITH(gtk4-im-module-dir,
AS_HELP_STRING([--with-gtk4-im-module-dir[=DIR]],
[Select gtk4 immodule dir]),
GTK4_IM_MODULEDIR=$with_gtk4_im_module_dir
)
AC_SUBST(GTK4_IM_MODULEDIR)
if test x"$enable_python" = x"yes"; then
# Check for dbus-python.
AC_ARG_ENABLE(dbus-python-check,
AS_HELP_STRING([--disable-dbus-python-check],
[Do not check dbus-python]),
[enable_dbus_python_check=$enableval],
[enable_dbus_python_check=yes]
)
PKG_CHECK_MODULES(DBUS_PYTHON,
[dbus-python >= 0.83.0],
[IBUS_HAS_DBUS_PYTHON=yes],
[IBUS_HAS_DBUS_PYTHON=no]
)
if test x"$IBUS_HAS_DBUS_PYTHON" != x"yes"; then
if test x"$enable_dbus_python_check" != x"no"; then
AC_MSG_ERROR([can not find dbus-python >= 0.83.0. Please install or update dbus-python.])
else
AC_MSG_WARN([can not find dbus-python >= 0.83.0. It is required.])
fi
fi
fi
# Option for always disable snooper applications.
AC_ARG_ENABLE(key-snooper,
AS_HELP_STRING([--disable-key-snooper],
[Always disable key snooper in gtk im module]),
[enable_key_snooper=$enableval],
[enable_key_snooper=yes]
)
if test x"$enable_key_snooper" = x"yes"; then
AC_DEFINE(ENABLE_SNOOPER, TRUE, [Enable key snooper])
else
AC_DEFINE(ENABLE_SNOOPER, FALSE, [Enable key snooper])
enable_key_snooper="no (disabled, use --enable-key-snooper to enable)"
fi
# Option for no snooper applications.
AC_ARG_WITH(no-snooper-apps,
AS_HELP_STRING([--with-no-snooper-apps[=regex1,regex2]],
[Does not enable keyboard snooper in those applications (like: .*chrome.*,firefox.*)]),
NO_SNOOPER_APPS=$with_no_snooper_apps,
NO_SNOOPER_APPS=[firefox.*,.*chrome.*,.*chromium.*,terminator]
)
AC_DEFINE_UNQUOTED(NO_SNOOPER_APPS, "$NO_SNOOPER_APPS",
[Does not enbale keyboard snooper in those applications])
# GNOME 3 uses the theme's icon.
AC_ARG_WITH(panel-icon-keyboard,
AS_HELP_STRING([--with-panel-icon-keyboard[=icon_name]],
[Set the default panel icon (default: "ibus-keyboard")]),
[if test x"$with_panel_icon_keyboard" = x"yes" -o \
x"$with_panel_icon_keyboard" = x; then
with_panel_icon_keyboard="input-keyboard-symbolic"
fi
if test x"$with_panel_icon_keyboard" = x"legacy"; then
with_panel_icon_keyboard="ibus-keyboard"
fi
IBUS_ICON_KEYBOARD=$with_panel_icon_keyboard
],
IBUS_ICON_KEYBOARD="ibus-keyboard"
)
AC_SUBST(IBUS_ICON_KEYBOARD)
# --disable-surrounding-text option.
AC_ARG_ENABLE(surrounding-text,
AS_HELP_STRING([--disable-surrounding-text],
[Enable surrounding-text support]),
[enable_surrounding_text=$enableval],
[enable_surrounding_text=yes]
)
if test x"$enable_surrounding_text" = x"yes"; then
AC_DEFINE(ENABLE_SURROUNDING, TRUE, [Enable surrounding-text support])
else
enable_surrounding_text="no (disabled, use --enable-surrounding-text to enable)"
fi
# --disable-ui
AC_ARG_ENABLE(ui,
AS_HELP_STRING([--disable-ui],
[Disable ibus default user interface]),
[enable_ui=$enableval],
[enable_ui=yes]
)
AM_CONDITIONAL([ENABLE_UI], [test x"$enable_ui" = x"yes"])
if test x"$enable_ui" = x"yes"; then
# Check for x11
PKG_CHECK_MODULES(X11, [
x11
])
enable_ui="yes (enabled, use --disable-ui to disable)"
fi
# --disable-engine
AC_ARG_ENABLE(engine,
AS_HELP_STRING([--disable-engine],
[Disable ibus simple engine]),
[enable_engine=$enableval],
[enable_engine=yes]
)
AM_CONDITIONAL([ENABLE_ENGINE], [test x"$enable_engine" = x"yes"])
if test x"$enable_engine" = x"yes"; then
enable_engine="yes (enabled, use --disable-engine to disable)"
fi
PKG_CHECK_MODULES(XTEST,
[x11 xtst],
[enable_xtest=yes],
[enable_xtest=no]
)
AM_CONDITIONAL([ENABLE_XTEST], [test x"$enable_xtest" = x"yes"])
PKG_CHECK_MODULES(XFIXES,
[x11 xfixes >= 6],
[AC_DEFINE([HAVE_XFIXES], [1], [Define to enable XFixes])
have_xfixes=yes],
[have_xfixes="no (libXfixes version is lower than 6)"]
)
# --enable-install-tests
AC_ARG_ENABLE(install-tests,
AS_HELP_STRING([--enable-install-tests],
[Enable to install tests]),
[enable_install_tests=$enableval],
[enable_install_tests=no]
)
AM_CONDITIONAL([ENABLE_INSTALL_TESTS], [test x"$enable_install_tests" = x"yes"])
if test x"$enable_install_tests" = x"no"; then
enable_install_tests="no (disabled, use --enable-install-tests to enable)"
fi
# --disable-emoji-dict option.
AC_ARG_ENABLE(emoji-dict,
AS_HELP_STRING([--disable-emoji-dict],
[Do not build Emoji dict files]),
[enable_emoji_dict=$enableval],
[enable_emoji_dict=yes]
)
AM_CONDITIONAL([ENABLE_EMOJI_DICT], [test x"$enable_emoji_dict" = x"yes"])
AC_ARG_WITH(unicode-emoji-dir,
AS_HELP_STRING([--with-unicode-emoji-dir[=DIR]],
[Set the directory of Unicode Emoji.
(default: "/usr/share/unicode/emoji")]),
UNICODE_EMOJI_DIR=$with_unicode_emoji_dir,
UNICODE_EMOJI_DIR="/usr/share/unicode/emoji"
)
AC_SUBST(UNICODE_EMOJI_DIR)
AC_ARG_WITH(emoji-annotation-dir,
AS_HELP_STRING([--with-emoji-annotation-dir[=DIR]],
[Set the directory of CLDR annotation files.
(default: "/usr/share/unicode/cldr/common/annotations")]),
EMOJI_ANNOTATION_DIR=$with_emoji_annotation_dir,
EMOJI_ANNOTATION_DIR="/usr/share/unicode/cldr/common/annotations"
)
AC_SUBST(EMOJI_ANNOTATION_DIR)
if test x"$enable_emoji_dict" = x"yes"; then
if test ! -f $UNICODE_EMOJI_DIR/emoji-test.txt ; then
AC_MSG_ERROR(Not found $UNICODE_EMOJI_DIR/emoji-test.txt. You can get \
the emoji files from http://www.unicode.org/Public/emoji/4.0/)
else
# POSIX SHELL has no ${FOO:0:1}
head=`echo "$UNICODE_EMOJI_DIR" | cut -c1`;
if test $head != "/" ; then
UNICODE_EMOJI_DIR=`realpath "$UNICODE_EMOJI_DIR"`
fi
fi
if test ! -f $EMOJI_ANNOTATION_DIR/en.xml ; then
AC_MSG_ERROR(Not found $EMOJI_ANNOTATION_DIR/en.xml. You can get \
https://github.com/fujiwarat/cldr-emoji-annotation)
else
head=`echo "$EMOJI_ANNOTATION_DIR" | cut -c1`;
if test $head != "/" ; then
EMOJI_ANNOTATION_DIR=`realpath "$EMOJI_ANNOTATION_DIR"`
fi
fi
enable_emoji_dict="yes (enabled, use --disable-emoji-dict to disable)"
fi
# --disable-unicode-dict option.
AC_ARG_ENABLE(unicode-dict,
AS_HELP_STRING([--disable-unicode-dict],
[Do not build Unicode dict files]),
[enable_unicode_dict=$enableval],
[enable_unicode_dict=yes]
)
AM_CONDITIONAL([ENABLE_UNICODE_DICT], [test x"$enable_unicode_dict" = x"yes"])
AC_ARG_WITH(ucd-dir,
AS_HELP_STRING([--with-ucd-dir[=DIR]],
[Set the directory of UCD (Unicode Character Database) files.
(default: "/usr/share/unicode/ucd")]),
UCD_DIR=$with_ucd_dir,
UCD_DIR="/usr/share/unicode/ucd"
)
AC_SUBST(UCD_DIR)
if test x"$enable_unicode_dict" = x"yes"; then
if test ! -f $UCD_DIR/NamesList.txt ; then
AC_MSG_ERROR(Not found $UCD_DIR/NamesList.txt. You can get \
the UCD files from https://www.unicode.org/Public/UNIDATA/)
elif test ! -f $UCD_DIR/Blocks.txt ; then
AC_MSG_ERROR(Not found $UCD_DIR/Blocks.txt. You can get \
the UCD files from https://www.unicode.org/Public/UNIDATA/)
else
# POSIX SHELL has no ${FOO:0:1}
head=`echo "$UCD_DIR" | cut -c1`;
if test $head != "/" ; then
UCD_DIR=`realpath "$UCD_DIR"`
fi
fi
enable_unicode_dict="yes (enabled, use --disable-unicode-dict to disable)"
fi
AC_ARG_WITH(socket-dir,
AS_HELP_STRING([--with-socket-dir[=DIR]],
[Set the default socket directory to connect ibus-daemon with D-Bus
connections (default: "$XDG_CACHE_HOME/ibus").
The best practice of the socket directory would be unique per user
not to modify by malicious users but XDG_RUNTIME_DIR is not integrated
in BSD systems and the BSD's default is "/tmp".
XDG_RUMTIME_DIR is not useful now because XDG_RUMTIME_DIR is available
by login but not `su` command but ibus-daemon can be run with su.
"$XDG_RUMTIME_DIR", "$XDG_CACHE_HOME", "$UID" are extracted by
ibus-daemon.
ibus-daemon also runs mkdir for the socket directory since BSD
systems do not support abstract socket paths.
The socket path on a NFS mount would not be a good idea likes
"/home/$USER" because the directory is not sometimes accessible
with the network condition.]),
[IBUS_SOCKET_DIR=$with_socket_dir],
[case $host in
*linux*) IBUS_SOCKET_DIR='unix:tmpdir=$XDG_CACHE_HOME/ibus';;
*) IBUS_SOCKET_DIR='unix:tmpdir=/tmp';;
esac]
)
AC_DEFINE_UNQUOTED(IBUS_SOCKET_DIR, "$IBUS_SOCKET_DIR",
[The default socket directory to connect ibus-daemon.])
# Check iso-codes.
PKG_CHECK_MODULES(ISOCODES, [
iso-codes
])
ISOCODES_PREFIX=`$PKG_CONFIG iso-codes --variable=prefix`
AC_SUBST(ISOCODES_PREFIX)
PKG_CHECK_MODULES(XKBCONFIG,
[xkeyboard-config],
[XKBCONFIG_BASE=`$PKG_CONFIG xkeyboard-config --variable=xkb_base`],
[XKBCONFIG_BASE='$(datarootdir)/X11/xkb']
)
AC_SUBST(XKBCONFIG_BASE)
AC_SUBST([GDBUS_CODEGEN], [`$PKG_CONFIG --variable gdbus_codegen gio-2.0`])
# OUTPUT files
AC_CONFIG_FILES([
po/Makefile.in
bindings/Makefile
bindings/pygobject/Makefile
bindings/vala/Makefile
bus/Makefile
bus/services/Makefile
client/Makefile
client/gtk2/Makefile
client/gtk3/Makefile
client/gtk4/Makefile
client/x11/Makefile
client/wayland/Makefile
conf/Makefile
conf/dconf/Makefile
conf/memconf/Makefile
data/Makefile
data/annotations/Makefile
data/icons/Makefile
data/its/Makefile
data/keymaps/Makefile
data/dconf/Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/ibus/ibus-docs.sgml
docs/reference/ibus/Makefile
engine/Makefile
ibus/_config.py
ibus/Makefile
ibus/interface/Makefile
m4/Makefile
portal/Makefile
setup/Makefile
src/Makefile
src/ibusversion.h
src/tests/Makefile
tools/Makefile
ui/Makefile
ui/gtk3/Makefile
util/Makefile
util/IMdkit/Makefile
Makefile
ibus-1.0.pc
ibus.spec
])
AC_OUTPUT
AC_MSG_RESULT([
Build options:
Version $IBUS_VERSION
Install prefix $prefix
Build shared libs $enable_shared
Build static libs $enable_static
CFLAGS $CFLAGS
PYTHON $PYTHON
PYTHON2 $PYTHON2
Enable python2 $enable_python2
Gtk2 immodule dir $GTK2_IM_MODULEDIR
Gtk3 immodule dir $GTK3_IM_MODULEDIR
Gtk4 immodule dir $GTK4_IM_MODULEDIR
Build gtk2 immodule $enable_gtk2
Build gtk3 immodule $enable_gtk3
Build gtk4 immodule $enable_gtk4
Build XIM agent server $enable_xim
Build wayland support $enable_wayland
Build gdk3 wayland support $enable_gdk3_wayland
Build appindicator support $enable_appindicator
Build python library $enable_python_library
Build memconf modules $enable_memconf
Build dconf modules $enable_dconf
Build introspection $found_introspection
IBus-1.0.gir scannerflags "$IBUS_GIR_SCANNERFLAGS"
Build vala binding $enable_vala
Build document $enable_gtk_doc
Build UI $enable_ui
Build engine $enable_engine
Enable key snooper $enable_key_snooper
No snooper regexes "$NO_SNOOPER_APPS"
Panel icon "$IBUS_ICON_KEYBOARD"
Enable surrounding-text $enable_surrounding_text
Enable Emoji dict $enable_emoji_dict
Unicode Emoji directory $UNICODE_EMOJI_DIR
CLDR annotation directory $EMOJI_ANNOTATION_DIR
Enable Unicode dict $enable_unicode_dict
UCD directory $UCD_DIR
Socket directory "$IBUS_SOCKET_DIR"
XFixes client disconnect $have_xfixes
Install systemd service $enable_systemd
Run test cases $enable_tests
Install tests $enable_install_tests
])