diff options
Diffstat (limited to 'configure.ac')
| -rw-r--r-- | configure.ac | 133 |
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 |
| 2914 | fi | 2914 | fi |
| 2915 | 2915 | ||
| 2916 | |||
| 2917 | dnl Enable xwidgets if GTK3 and WebKitGTK+ are available. | ||
| 2918 | dnl Enable xwidgets if macOS Cocoa and WebKit framework are available. | ||
| 2919 | HAVE_XWIDGETS=no | ||
| 2920 | XWIDGETS_OBJ= | ||
| 2921 | if 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.]) | ||
| 2947 | fi | ||
| 2948 | AC_SUBST(XWIDGETS_OBJ) | ||
| 2949 | |||
| 2950 | CFLAGS=$OLD_CFLAGS | 2916 | CFLAGS=$OLD_CFLAGS |
| 2951 | LIBS=$OLD_LIBS | 2917 | LIBS=$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.]) |
| 3410 | fi | 3376 | fi |
| 3411 | 3377 | ||
| 3412 | |||
| 3413 | if 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; | ||
| 3422 | XrmDatabase db; | ||
| 3423 | char *res_name; | ||
| 3424 | char *res_class; | ||
| 3425 | XIDProc *callback; | ||
| 3426 | XPointer *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. */ | ||
| 3430 | extern 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, | ||
| 3438 | either 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 | ||
| 3445 | fi | ||
| 3446 | |||
| 3447 | # Check for XRender | 3378 | # Check for XRender |
| 3448 | HAVE_XRENDER=no | 3379 | HAVE_XRENDER=no |
| 3449 | if test "${HAVE_X11}" = "yes"; then | 3380 | if 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 |
| 3480 | fi | 3418 | fi |
| 3481 | 3419 | ||
| 3420 | dnl Enable xwidgets if GTK3 and WebKitGTK+ are available. | ||
| 3421 | dnl Enable xwidgets if macOS Cocoa and WebKit framework are available. | ||
| 3422 | HAVE_XWIDGETS=no | ||
| 3423 | XWIDGETS_OBJ= | ||
| 3424 | if 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.]) | ||
| 3462 | fi | ||
| 3463 | AC_SUBST(XWIDGETS_OBJ) | ||
| 3464 | |||
| 3482 | if test "$window_system" = "pgtk"; then | 3465 | if 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) | |||
| 3750 | AC_SUBST(M17N_FLT_CFLAGS) | 3733 | AC_SUBST(M17N_FLT_CFLAGS) |
| 3751 | AC_SUBST(M17N_FLT_LIBS) | 3734 | AC_SUBST(M17N_FLT_LIBS) |
| 3752 | 3735 | ||
| 3736 | XCB_LIBS= | ||
| 3753 | if test "${HAVE_X11}" = "yes"; then | 3737 | if 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 |
| 3766 | fi | 3752 | fi |
| 3753 | AC_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. |