aboutsummaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac133
1 files changed, 60 insertions, 73 deletions
diff --git a/configure.ac b/configure.ac
index baf8c8018ec..515ae825362 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2913,40 +2913,6 @@ if test "${HAVE_GTK}" = "yes"; then
2913 fi 2913 fi
2914fi 2914fi
2915 2915
2916
2917dnl Enable xwidgets if GTK3 and WebKitGTK+ are available.
2918dnl Enable xwidgets if macOS Cocoa and WebKit framework are available.
2919HAVE_XWIDGETS=no
2920XWIDGETS_OBJ=
2921if test "$with_xwidgets" != "no"; then
2922 if test "$USE_GTK_TOOLKIT" = "GTK3" && test "$window_system" != "none"; then
2923 WEBKIT_REQUIRED=2.12
2924 WEBKIT_MODULES="webkit2gtk-4.0 >= $WEBKIT_REQUIRED"
2925 EMACS_CHECK_MODULES([WEBKIT], [$WEBKIT_MODULES])
2926 HAVE_XWIDGETS=$HAVE_WEBKIT
2927 XWIDGETS_OBJ="xwidget.o"
2928 elif test "${NS_IMPL_COCOA}" = "yes"; then
2929 dnl FIXME: Check framework WebKit2
2930 dnl WEBKIT_REQUIRED=M.m.p
2931 WEBKIT_LIBS="-Wl,-framework -Wl,WebKit"
2932 WEBKIT_CFLAGS="-I/System/Library/Frameworks/WebKit.framework/Headers"
2933 HAVE_WEBKIT="yes"
2934 HAVE_XWIDGETS=$HAVE_WEBKIT
2935 XWIDGETS_OBJ="xwidget.o"
2936 NS_OBJC_OBJ="$NS_OBJC_OBJ nsxwidget.o"
2937 dnl Update NS_OBJC_OBJ with added nsxwidget.o
2938 AC_SUBST(NS_OBJC_OBJ)
2939 else
2940 AC_MSG_ERROR([xwidgets requested, it requires GTK3 as X window toolkit or macOS Cocoa as window system.])
2941 fi
2942
2943 test $HAVE_XWIDGETS = yes ||
2944 AC_MSG_ERROR([xwidgets requested but WebKitGTK+ or WebKit framework not found.])
2945
2946 AC_DEFINE([HAVE_XWIDGETS], 1, [Define to 1 if you have xwidgets support.])
2947fi
2948AC_SUBST(XWIDGETS_OBJ)
2949
2950CFLAGS=$OLD_CFLAGS 2916CFLAGS=$OLD_CFLAGS
2951LIBS=$OLD_LIBS 2917LIBS=$OLD_LIBS
2952 2918
@@ -3409,41 +3375,6 @@ if test "${with_xim}" != "no"; then
3409 [Define to 1 to default runtime use of XIM to on.]) 3375 [Define to 1 to default runtime use of XIM to on.])
3410fi 3376fi
3411 3377
3412
3413if test "${HAVE_XIM}" != "no"; then
3414 late_CFLAGS=$CFLAGS
3415 if test "$GCC" = yes; then
3416 CFLAGS="$CFLAGS --pedantic-errors"
3417 fi
3418 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3419#include <X11/Xlib.h>
3420#include <X11/Xresource.h>]],
3421[[Display *display;
3422XrmDatabase db;
3423char *res_name;
3424char *res_class;
3425XIDProc *callback;
3426XPointer *client_data;
3427#ifndef __GNUC__
3428/* If we're not using GCC, it's probably not XFree86, and this is
3429 probably right, but we can't use something like --pedantic-errors. */
3430extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
3431 char*, XIMProc, XPointer*);
3432#endif
3433(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
3434 client_data);]])],
3435 [emacs_cv_arg6_star=yes])
3436 AH_TEMPLATE(XRegisterIMInstantiateCallback_arg6,
3437 [Define to the type of the 6th arg of XRegisterIMInstantiateCallback,
3438either XPointer or XPointer*.])dnl
3439 if test "$emacs_cv_arg6_star" = yes; then
3440 AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*])
3441 else
3442 AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer])
3443 fi
3444 CFLAGS=$late_CFLAGS
3445fi
3446
3447# Check for XRender 3378# Check for XRender
3448HAVE_XRENDER=no 3379HAVE_XRENDER=no
3449if test "${HAVE_X11}" = "yes"; then 3380if test "${HAVE_X11}" = "yes"; then
@@ -3468,6 +3399,13 @@ if test "${HAVE_X11}" = "yes"; then
3468 CAIRO_MODULE="cairo >= $CAIRO_REQUIRED" 3399 CAIRO_MODULE="cairo >= $CAIRO_REQUIRED"
3469 EMACS_CHECK_MODULES(CAIRO, $CAIRO_MODULE) 3400 EMACS_CHECK_MODULES(CAIRO, $CAIRO_MODULE)
3470 if test $HAVE_CAIRO = yes; then 3401 if test $HAVE_CAIRO = yes; then
3402 CAIRO_XCB_MODULE="cairo-xcb >= $CAIRO_REQUIRED"
3403 EMACS_CHECK_MODULES(CAIRO_XCB, $CAIRO_XCB_MODULE)
3404 if test $HAVE_CAIRO_XCB = yes; then
3405 CAIRO_CFLAGS="$CAIRO_CFLAGS $CAIRO_XCB_CFLAGS"
3406 CAIRO_LIBS="$CAIRO_LIBS $CAIRO_XCB_LIBS"
3407 AC_DEFINE(USE_CAIRO_XCB, 1, [Define to 1 if cairo XCB surfaces are available.])
3408 fi
3471 AC_DEFINE(USE_CAIRO, 1, [Define to 1 if using cairo.]) 3409 AC_DEFINE(USE_CAIRO, 1, [Define to 1 if using cairo.])
3472 CFLAGS="$CFLAGS $CAIRO_CFLAGS" 3410 CFLAGS="$CFLAGS $CAIRO_CFLAGS"
3473 LIBS="$LIBS $CAIRO_LIBS" 3411 LIBS="$LIBS $CAIRO_LIBS"
@@ -3479,6 +3417,51 @@ if test "${HAVE_X11}" = "yes"; then
3479 fi 3417 fi
3480fi 3418fi
3481 3419
3420dnl Enable xwidgets if GTK3 and WebKitGTK+ are available.
3421dnl Enable xwidgets if macOS Cocoa and WebKit framework are available.
3422HAVE_XWIDGETS=no
3423XWIDGETS_OBJ=
3424if test "$with_xwidgets" != "no"; then
3425 if test "$USE_GTK_TOOLKIT" = "GTK3" && test "$window_system" != "none"; then
3426 WEBKIT_REQUIRED=2.12
3427 WEBKIT_MODULES="webkit2gtk-4.0 >= $WEBKIT_REQUIRED"
3428 EMACS_CHECK_MODULES([WEBKIT], [$WEBKIT_MODULES])
3429 HAVE_XWIDGETS=$HAVE_WEBKIT
3430 XWIDGETS_OBJ="xwidget.o"
3431 if test "$HAVE_X_WINDOWS" = "yes" && test "${with_cairo}" = "no"; then
3432 CAIRO_XLIB_MODULES="cairo >= 1.8.0 cairo-xlib >= 1.8.0"
3433 EMACS_CHECK_MODULES(CAIRO_XLIB, $CAIRO_XLIB_MODULES)
3434 if test $HAVE_CAIRO_XLIB = "yes"; then
3435 CAIRO_CFLAGS="$CAIRO_XLIB_CFLAGS"
3436 CAIRO_LIBS="$CAIRO_XLIB_LIBS"
3437 AC_SUBST(CAIRO_CFLAGS)
3438 AC_SUBST(CAIRO_LIBS)
3439 else
3440 AC_MSG_ERROR([xwidgets requested, but a suitable cairo installation wasn't found])
3441 fi
3442 fi
3443 elif test "${NS_IMPL_COCOA}" = "yes"; then
3444 dnl FIXME: Check framework WebKit2
3445 dnl WEBKIT_REQUIRED=M.m.p
3446 WEBKIT_LIBS="-Wl,-framework -Wl,WebKit"
3447 WEBKIT_CFLAGS="-I/System/Library/Frameworks/WebKit.framework/Headers"
3448 HAVE_WEBKIT="yes"
3449 HAVE_XWIDGETS=$HAVE_WEBKIT
3450 XWIDGETS_OBJ="xwidget.o"
3451 NS_OBJC_OBJ="$NS_OBJC_OBJ nsxwidget.o"
3452 dnl Update NS_OBJC_OBJ with added nsxwidget.o
3453 AC_SUBST(NS_OBJC_OBJ)
3454 else
3455 AC_MSG_ERROR([xwidgets requested, it requires GTK3 as X window toolkit or macOS Cocoa as window system.])
3456 fi
3457
3458 test $HAVE_XWIDGETS = yes ||
3459 AC_MSG_ERROR([xwidgets requested but WebKitGTK+ or WebKit framework not found.])
3460
3461 AC_DEFINE([HAVE_XWIDGETS], 1, [Define to 1 if you have xwidgets support.])
3462fi
3463AC_SUBST(XWIDGETS_OBJ)
3464
3482if test "$window_system" = "pgtk"; then 3465if test "$window_system" = "pgtk"; then
3483 CAIRO_REQUIRED=1.12.0 3466 CAIRO_REQUIRED=1.12.0
3484 CAIRO_MODULE="cairo >= $CAIRO_REQUIRED" 3467 CAIRO_MODULE="cairo >= $CAIRO_REQUIRED"
@@ -3750,20 +3733,24 @@ AC_SUBST(LIBOTF_LIBS)
3750AC_SUBST(M17N_FLT_CFLAGS) 3733AC_SUBST(M17N_FLT_CFLAGS)
3751AC_SUBST(M17N_FLT_LIBS) 3734AC_SUBST(M17N_FLT_LIBS)
3752 3735
3736XCB_LIBS=
3753if test "${HAVE_X11}" = "yes"; then 3737if test "${HAVE_X11}" = "yes"; then
3754 AC_CHECK_HEADER(X11/Xlib-xcb.h, 3738 AC_CHECK_HEADER(X11/Xlib-xcb.h,
3755 AC_CHECK_LIB(xcb, xcb_translate_coordinates, HAVE_XCB=yes)) 3739 AC_CHECK_LIB(xcb, xcb_translate_coordinates, HAVE_XCB=yes))
3756 if test "${HAVE_XCB}" = "yes"; then 3740 if test "${HAVE_XCB}" = "yes"; then
3757 AC_CHECK_LIB(X11-xcb, XGetXCBConnection, HAVE_X11_XCB=yes) 3741 AC_CHECK_LIB(X11-xcb, XGetXCBConnection, HAVE_X11_XCB=yes)
3758 if test "${HAVE_X11_XCB}" = "yes"; then 3742 if test "${HAVE_X11_XCB}" = "yes"; then
3759 AC_DEFINE(USE_XCB, 1, 3743 AC_CHECK_LIB(xcb-util, xcb_aux_sync, HAVE_XCB_UTIL=yes)
3744 if test "${HAVE_XCB_UTIL}" = "yes"; then
3745 AC_DEFINE(USE_XCB, 1,
3760[Define to 1 if you have the XCB library and X11-XCB library for mixed 3746[Define to 1 if you have the XCB library and X11-XCB library for mixed
3761 X11/XCB programming.]) 3747 X11/XCB programming.])
3762 XCB_LIBS="-lX11-xcb -lxcb" 3748 XCB_LIBS="-lX11-xcb -lxcb -lxcb-util"
3763 AC_SUBST(XCB_LIBS) 3749 fi
3764 fi 3750 fi
3765 fi 3751 fi
3766fi 3752fi
3753AC_SUBST(XCB_LIBS)
3767 3754
3768### Use -lXpm if available, unless '--with-xpm=no'. 3755### Use -lXpm if available, unless '--with-xpm=no'.
3769### mingw32 doesn't use -lXpm, since it loads the library dynamically. 3756### mingw32 doesn't use -lXpm, since it loads the library dynamically.