Fix keyboard input in direct rendering mode

- Create XKB keymap before wlr_backend_start() so it's available when
  libinput detects keyboards synchronously during startup
- Support multiple keyboards by allocating per-device listeners instead
  of replacing listeners on each new keyboard
- Remove duplicate keymap creation code that ran too late
This commit is contained in:
Levi Neely 2026-06-29 11:45:20 +02:00
parent 00d330fe88
commit 1d3843f62a
14 changed files with 331 additions and 512 deletions

View File

@ -32,7 +32,7 @@ Copyright (c) 2015 The Window Maker Team.
along with this program, see file COPYING for details. along with this program, see file COPYING for details.
Published by The Window Maker team on 6 January 2023. Published by The Window Maker team on 8 June 2026.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -33,7 +33,7 @@ Copyright (c) 2015 The Window Maker Team.
along with this program, see file COPYING for details. along with this program, see file COPYING for details.
Published by The Window Maker team on 6 January 2023. Published by The Window Maker team on 8 June 2026.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

416
aclocal.m4 vendored
View File

@ -1,6 +1,6 @@
# generated automatically by aclocal 1.18.1 -*- Autoconf -*- # generated automatically by aclocal 1.16.5 -*- Autoconf -*-
# Copyright (C) 1996-2025 Free Software Foundation, Inc. # Copyright (C) 1996-2021 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -14,14 +14,14 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION], m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],, m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
[m4_warning([this file was generated for autoconf 2.72. [m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to. You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely. If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])]) To do so, use the procedure documented by the package, typically 'autoreconf'.])])
# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*- # pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*-
# serial 13 (pkgconf) # serial 12 (pkg-config-0.29.2)
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
@ -37,7 +37,9 @@ dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl General Public License for more details. dnl General Public License for more details.
dnl dnl
dnl You should have received a copy of the GNU General Public License dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, see <https://www.gnu.org/licenses/>. dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
dnl 02111-1307, USA.
dnl dnl
dnl As a special exception to the GNU General Public License, if you dnl As a special exception to the GNU General Public License, if you
dnl distribute this file as part of a program that contains a dnl distribute this file as part of a program that contains a
@ -66,8 +68,8 @@ m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ ])dnl PKG_PREREQ
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION], [ACTION-IF-NOT-FOUND]) dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
dnl --------------------------------------------------------- dnl ----------------------------------
dnl Since: 0.16 dnl Since: 0.16
dnl dnl
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
@ -75,12 +77,6 @@ dnl first found in the path. Checks that the version of pkg-config found
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
dnl used since that's the first version where most current features of dnl used since that's the first version where most current features of
dnl pkg-config existed. dnl pkg-config existed.
dnl
dnl If pkg-config is not found or older than specified, it will result
dnl in an empty PKG_CONFIG variable. To avoid widespread issues with
dnl scripts not checking it, ACTION-IF-NOT-FOUND defaults to aborting.
dnl You can specify [PKG_CONFIG=false] as an action instead, which would
dnl result in pkg-config tests failing, but no bogus error messages.
AC_DEFUN([PKG_PROG_PKG_CONFIG], AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
@ -101,9 +97,6 @@ if test -n "$PKG_CONFIG"; then
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
PKG_CONFIG="" PKG_CONFIG=""
fi fi
fi
if test -z "$PKG_CONFIG"; then
m4_default([$2], [AC_MSG_ERROR([pkg-config not found])])
fi[]dnl fi[]dnl
])dnl PKG_PROG_PKG_CONFIG ])dnl PKG_PROG_PKG_CONFIG
@ -371,7 +364,7 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
[AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
])dnl PKG_HAVE_DEFINE_WITH_MODULES ])dnl PKG_HAVE_DEFINE_WITH_MODULES
# Copyright (C) 2002-2025 Free Software Foundation, Inc. # Copyright (C) 2002-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -383,10 +376,10 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
# generated from the m4 files accompanying Automake X.Y. # generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.) # (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION], AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.18' [am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro. dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.18.1], [], m4_if([$1], [1.16.5], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
]) ])
@ -402,14 +395,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.18.1])dnl [AM_AUTOMAKE_VERSION([1.16.5])dnl
m4_ifndef([AC_AUTOCONF_VERSION], m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*- # AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001-2025 Free Software Foundation, Inc. # Copyright (C) 2001-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -461,7 +454,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
# AM_CONDITIONAL -*- Autoconf -*- # AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997-2025 Free Software Foundation, Inc. # Copyright (C) 1997-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -492,7 +485,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]]) Usually this means the macro was only invoked conditionally.]])
fi])]) fi])])
# Copyright (C) 1999-2025 Free Software Foundation, Inc. # Copyright (C) 1999-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -624,7 +617,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
# icc doesn't choke on unknown options, it will just issue warnings # icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message # or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported. # that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thus: # When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required # icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0: # The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported # icc: Command line remark: option '-MP' not supported
@ -683,7 +676,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*- # Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999-2025 Free Software Foundation, Inc. # Copyright (C) 1999-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -751,7 +744,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# Do all the work for Automake. -*- Autoconf -*- # Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996-2025 Free Software Foundation, Inc. # Copyright (C) 1996-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -852,8 +845,7 @@ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
[_AM_IF_OPTION([tar-v7], [_AM_PROG_TAR([v7])], [_AM_PROG_TAR([v7])])])
[_AM_PROG_TAR([ustar])])])])
_AM_IF_OPTION([no-dependencies],, _AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC], [AC_PROVIDE_IFELSE([AC_PROG_CC],
[_AM_DEPENDENCIES([CC])], [_AM_DEPENDENCIES([CC])],
@ -886,7 +878,7 @@ if test -z "$CSCOPE"; then
fi fi
AC_SUBST([CSCOPE]) AC_SUBST([CSCOPE])
AC_REQUIRE([_AM_SILENT_RULES])dnl AC_REQUIRE([AM_SILENT_RULES])dnl
dnl The testsuite driver may need to know about EXEEXT, so add the dnl The testsuite driver may need to know about EXEEXT, so add the
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
@ -894,9 +886,47 @@ AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT], [m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
AC_REQUIRE([_AM_PROG_RM_F]) # POSIX will say in a future version that running "rm -f" with no argument
AC_REQUIRE([_AM_PROG_XARGS_N]) # is OK; and we want to be able to make that assumption in our Makefile
# recipes. So use an aggressive probe to check that the usage we want is
# actually supported "in the wild" to an acceptable degree.
# See automake bug#10828.
# To make any issue more visible, cause the running configure to be aborted
# by default if the 'rm' program in use doesn't match our expectations; the
# user can still override this though.
if rm -f && rm -fr && rm -rf; then : OK; else
cat >&2 <<'END'
Oops!
Your 'rm' program seems unable to run without file operands specified
on the command line, even when the '-f' option is present. This is contrary
to the behaviour of most rm programs out there, and not conforming with
the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
Please tell bug-automake@gnu.org about your system, including the value
of your $PATH and any error possibly output before this message. This
can help us improve future automake versions.
END
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
echo 'Configuration will proceed anyway, since you have set the' >&2
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
echo >&2
else
cat >&2 <<'END'
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
to "yes", and re-run configure.
END
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
fi
fi
dnl The trailing newline in this macro's definition is deliberate, for dnl The trailing newline in this macro's definition is deliberate, for
dnl backward compatibility and to allow trailing 'dnl'-style comments dnl backward compatibility and to allow trailing 'dnl'-style comments
dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
@ -929,7 +959,7 @@ for _am_header in $config_headers :; do
done done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001-2025 Free Software Foundation, Inc. # Copyright (C) 2001-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -950,7 +980,7 @@ if test x"${install_sh+set}" != xset; then
fi fi
AC_SUBST([install_sh])]) AC_SUBST([install_sh])])
# Copyright (C) 2003-2025 Free Software Foundation, Inc. # Copyright (C) 2003-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -971,7 +1001,7 @@ AC_SUBST([am__leading_dot])])
# Check to see how 'make' treats includes. -*- Autoconf -*- # Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001-2025 Free Software Foundation, Inc. # Copyright (C) 2001-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -1014,7 +1044,7 @@ AC_SUBST([am__quote])])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997-2025 Free Software Foundation, Inc. # Copyright (C) 1997-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -1048,7 +1078,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*- # Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001-2025 Free Software Foundation, Inc. # Copyright (C) 2001-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -1077,7 +1107,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION], AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Copyright (C) 1999-2025 Free Software Foundation, Inc. # Copyright (C) 1999-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -1109,10 +1139,7 @@ AC_CACHE_CHECK(
break break
fi fi
done done
# aligned with autoconf, so not including core; see bug#72225. rm -f core conftest*
rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \
conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \
conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM
unset am_i]) unset am_i])
if test "$am_cv_prog_cc_c_o" != yes; then if test "$am_cv_prog_cc_c_o" != yes; then
# Losing compiler, so override with the script. # Losing compiler, so override with the script.
@ -1127,23 +1154,7 @@ AC_LANG_POP([C])])
# For backward compatibility. # For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
# Copyright (C) 2022-2025 Free Software Foundation, Inc. # Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# _AM_PROG_RM_F
# ---------------
# Check whether 'rm -f' without any arguments works.
# https://bugs.gnu.org/10828
AC_DEFUN([_AM_PROG_RM_F],
[am__rm_f_notfound=
AS_IF([(rm -f && rm -fr && rm -rf) 2>/dev/null], [], [am__rm_f_notfound='""'])
AC_SUBST(am__rm_f_notfound)
])
# Copyright (C) 2001-2025 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -1162,181 +1173,26 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*- # Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996-2025 Free Software Foundation, Inc. # Copyright (C) 1996-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
# _AM_SLEEP_FRACTIONAL_SECONDS
# ----------------------------
AC_DEFUN([_AM_SLEEP_FRACTIONAL_SECONDS], [dnl
AC_CACHE_CHECK([whether sleep supports fractional seconds],
am_cv_sleep_fractional_seconds, [dnl
AS_IF([sleep 0.001 2>/dev/null], [am_cv_sleep_fractional_seconds=yes],
[am_cv_sleep_fractional_seconds=no])
])])
# _AM_FILESYSTEM_TIMESTAMP_RESOLUTION
# -----------------------------------
# Determine the filesystem's resolution for file modification
# timestamps. The coarsest we know of is FAT, with a resolution
# of only two seconds, even with the most recent "exFAT" extensions.
# The finest (e.g. ext4 with large inodes, XFS, ZFS) is one
# nanosecond, matching clock_gettime. However, it is probably not
# possible to delay execution of a shell script for less than one
# millisecond, due to process creation overhead and scheduling
# granularity, so we don't check for anything finer than that. (See below.)
AC_DEFUN([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION], [dnl
AC_REQUIRE([_AM_SLEEP_FRACTIONAL_SECONDS])
AC_CACHE_CHECK([filesystem timestamp resolution],
am_cv_filesystem_timestamp_resolution, [dnl
# Default to the worst case.
am_cv_filesystem_timestamp_resolution=2
# Only try to go finer than 1 sec if sleep can do it.
# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work,
# - 1 sec is not much of a win compared to 2 sec, and
# - it takes 2 seconds to perform the test whether 1 sec works.
#
# Instead, just use the default 2s on platforms that have 1s resolution,
# accept the extra 1s delay when using $sleep in the Automake tests, in
# exchange for not incurring the 2s delay for running the test for all
# packages.
#
am_try_resolutions=
if test "$am_cv_sleep_fractional_seconds" = yes; then
# Even a millisecond often causes a bunch of false positives,
# so just try a hundredth of a second. The time saved between .001 and
# .01 is not terribly consequential.
am_try_resolutions="0.01 0.1 $am_try_resolutions"
fi
# In order to catch current-generation FAT out, we must *modify* files
# that already exist; the *creation* timestamp is finer. Use names
# that make ls -t sort them differently when they have equal
# timestamps than when they have distinct timestamps, keeping
# in mind that ls -t prints the *newest* file first.
rm -f conftest.ts?
: > conftest.ts1
: > conftest.ts2
: > conftest.ts3
# Make sure ls -t actually works. Do 'set' in a subshell so we don't
# clobber the current shell's arguments. (Outer-level square brackets
# are removed by m4; they're present so that m4 does not expand
# <dollar><star>; be careful, easy to get confused.)
if (
set X `[ls -t conftest.ts[12]]` &&
{
test "$[]*" != "X conftest.ts1 conftest.ts2" ||
test "$[]*" != "X conftest.ts2 conftest.ts1";
}
); then :; else
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
_AS_ECHO_UNQUOTED(
["Bad output from ls -t: \"`[ls -t conftest.ts[12]]`\""],
[AS_MESSAGE_LOG_FD])
AC_MSG_FAILURE([ls -t produces unexpected output.
Make sure there is not a broken ls alias in your environment.])
fi
for am_try_res in $am_try_resolutions; do
# Any one fine-grained sleep might happen to cross the boundary
# between two values of a coarser actual resolution, but if we do
# two fine-grained sleeps in a row, at least one of them will fall
# entirely within a coarse interval.
echo alpha > conftest.ts1
sleep $am_try_res
echo beta > conftest.ts2
sleep $am_try_res
echo gamma > conftest.ts3
# We assume that 'ls -t' will make use of high-resolution
# timestamps if the operating system supports them at all.
if (set X `ls -t conftest.ts?` &&
test "$[]2" = conftest.ts3 &&
test "$[]3" = conftest.ts2 &&
test "$[]4" = conftest.ts1); then
#
# Ok, ls -t worked. If we're at a resolution of 1 second, we're done,
# because we don't need to test make.
make_ok=true
if test $am_try_res != 1; then
# But if we've succeeded so far with a subsecond resolution, we
# have one more thing to check: make. It can happen that
# everything else supports the subsecond mtimes, but make doesn't;
# notably on macOS, which ships make 3.81 from 2006 (the last one
# released under GPLv2). https://bugs.gnu.org/68808
#
# We test $MAKE if it is defined in the environment, else "make".
# It might get overridden later, but our hope is that in practice
# it does not matter: it is the system "make" which is (by far)
# the most likely to be broken, whereas if the user overrides it,
# probably they did so with a better, or at least not worse, make.
# https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html
#
# Create a Makefile (real tab character here):
rm -f conftest.mk
echo 'conftest.ts1: conftest.ts2' >conftest.mk
echo ' touch conftest.ts2' >>conftest.mk
#
# Now, running
# touch conftest.ts1; touch conftest.ts2; make
# should touch ts1 because ts2 is newer. This could happen by luck,
# but most often, it will fail if make's support is insufficient. So
# test for several consecutive successes.
#
# (We reuse conftest.ts[12] because we still want to modify existing
# files, not create new ones, per above.)
n=0
make=${MAKE-make}
until test $n -eq 3; do
echo one > conftest.ts1
sleep $am_try_res
echo two > conftest.ts2 # ts2 should now be newer than ts1
if $make -f conftest.mk | grep 'up to date' >/dev/null; then
make_ok=false
break # out of $n loop
fi
n=`expr $n + 1`
done
fi
#
if $make_ok; then
# Everything we know to check worked out, so call this resolution good.
am_cv_filesystem_timestamp_resolution=$am_try_res
break # out of $am_try_res loop
fi
# Otherwise, we'll go on to check the next resolution.
fi
done
rm -f conftest.ts?
# (end _am_filesystem_timestamp_resolution)
])])
# AM_SANITY_CHECK # AM_SANITY_CHECK
# --------------- # ---------------
AC_DEFUN([AM_SANITY_CHECK], AC_DEFUN([AM_SANITY_CHECK],
[AC_REQUIRE([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION]) [AC_MSG_CHECKING([whether build environment is sane])
# This check should not be cached, as it may vary across builds of
# different projects.
AC_MSG_CHECKING([whether build environment is sane])
# Reject unsafe characters in $srcdir or the absolute working directory # Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter. # name. Accept space and tab only in the latter.
am_lf=' am_lf='
' '
case `pwd` in case `pwd` in
*[[\\\"\#\$\&\'\`$am_lf]]*) *[[\\\"\#\$\&\'\`$am_lf]]*)
AC_MSG_RESULT([no])
AC_MSG_ERROR([unsafe absolute working directory name]);; AC_MSG_ERROR([unsafe absolute working directory name]);;
esac esac
case $srcdir in case $srcdir in
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
AC_MSG_RESULT([no])
AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
esac esac
@ -1345,40 +1201,49 @@ esac
# symlink; some systems play weird games with the mod time of symlinks # symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing # (eg FreeBSD returns the mod time of the symlink's containing
# directory). # directory).
am_build_env_is_sane=no if (
am_has_slept=no am_has_slept=no
rm -f conftest.file
for am_try in 1 2; do for am_try in 1 2; do
echo "timestamp, slept: $am_has_slept" > conftest.file echo "timestamp, slept: $am_has_slept" > conftest.file
if (
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$[]*" = "X"; then if test "$[*]" = "X"; then
# -L didn't work. # -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file` set X `ls -t "$srcdir/configure" conftest.file`
fi fi
test "$[]2" = conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \
); then && test "$[*]" != "X conftest.file $srcdir/configure"; then
am_build_env_is_sane=yes
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
if test "$[2]" = conftest.file || test $am_try -eq 2; then
break break
fi fi
# Just in case. # Just in case.
sleep "$am_cv_filesystem_timestamp_resolution" sleep 1
am_has_slept=yes am_has_slept=yes
done done
test "$[2]" = conftest.file
AC_MSG_RESULT([$am_build_env_is_sane]) )
if test "$am_build_env_is_sane" = no; then then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files! AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock]) Check your system clock])
fi fi
AC_MSG_RESULT([yes])
# If we didn't sleep, we still need to ensure time stamps of config.status and # If we didn't sleep, we still need to ensure time stamps of config.status and
# generated files are strictly newer. # generated files are strictly newer.
am_sleep_pid= am_sleep_pid=
AS_IF([test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1],, [dnl if grep 'slept: no' conftest.file >/dev/null 2>&1; then
( sleep "$am_cv_filesystem_timestamp_resolution" ) & ( sleep 1 ) &
am_sleep_pid=$! am_sleep_pid=$!
]) fi
AC_CONFIG_COMMANDS_PRE( AC_CONFIG_COMMANDS_PRE(
[AC_MSG_CHECKING([that generated files are newer than configure]) [AC_MSG_CHECKING([that generated files are newer than configure])
if test -n "$am_sleep_pid"; then if test -n "$am_sleep_pid"; then
@ -1389,18 +1254,18 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file rm -f conftest.file
]) ])
# Copyright (C) 2009-2025 Free Software Foundation, Inc. # Copyright (C) 2009-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
# _AM_SILENT_RULES # AM_SILENT_RULES([DEFAULT])
# ---------------- # --------------------------
# Enable less verbose build rules support. # Enable less verbose build rules; with the default set to DEFAULT
AC_DEFUN([_AM_SILENT_RULES], # ("yes" being less verbose, "no" or empty being verbose).
[AM_DEFAULT_VERBOSITY=1 AC_DEFUN([AM_SILENT_RULES],
AC_ARG_ENABLE([silent-rules], [dnl [AC_ARG_ENABLE([silent-rules], [dnl
AS_HELP_STRING( AS_HELP_STRING(
[--enable-silent-rules], [--enable-silent-rules],
[less verbose build output (undo: "make V=1")]) [less verbose build output (undo: "make V=1")])
@ -1408,6 +1273,11 @@ AS_HELP_STRING(
[--disable-silent-rules], [--disable-silent-rules],
[verbose build output (undo: "make V=0")])dnl [verbose build output (undo: "make V=0")])dnl
]) ])
case $enable_silent_rules in @%:@ (((
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
esac
dnl dnl
dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
dnl do not support nested variable expansions. dnl do not support nested variable expansions.
@ -1426,21 +1296,6 @@ am__doit:
else else
am_cv_make_support_nested_variables=no am_cv_make_support_nested_variables=no
fi]) fi])
AC_SUBST([AM_V])dnl
AM_SUBST_NOTMAKE([AM_V])dnl
AC_SUBST([AM_DEFAULT_V])dnl
AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
AM_BACKSLASH='\'
AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
dnl Delay evaluation of AM_DEFAULT_VERBOSITY to the end to allow multiple calls
dnl to AM_SILENT_RULES to change the default value.
AC_CONFIG_COMMANDS_PRE([dnl
case $enable_silent_rules in @%:@ (((
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
esac
if test $am_cv_make_support_nested_variables = yes; then if test $am_cv_make_support_nested_variables = yes; then
dnl Using '$V' instead of '$(V)' breaks IRIX make. dnl Using '$V' instead of '$(V)' breaks IRIX make.
AM_V='$(V)' AM_V='$(V)'
@ -1449,22 +1304,17 @@ else
AM_V=$AM_DEFAULT_VERBOSITY AM_V=$AM_DEFAULT_VERBOSITY
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi fi
])dnl AC_SUBST([AM_V])dnl
AM_SUBST_NOTMAKE([AM_V])dnl
AC_SUBST([AM_DEFAULT_V])dnl
AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
AM_BACKSLASH='\'
AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
]) ])
# AM_SILENT_RULES([DEFAULT]) # Copyright (C) 2001-2021 Free Software Foundation, Inc.
# --------------------------
# Set the default verbosity level to DEFAULT ("yes" being less verbose, "no" or
# empty being verbose).
AC_DEFUN([AM_SILENT_RULES],
[AC_REQUIRE([_AM_SILENT_RULES])
AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])m4_newline
dnl We intentionally force a newline after the assignment, since a) nothing
dnl good can come of more text following, and b) that was the behavior
dnl before 1.17. See https://bugs.gnu.org/72267.
])
# Copyright (C) 2001-2025 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -1492,7 +1342,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])]) AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006-2025 Free Software Foundation, Inc. # Copyright (C) 2006-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -1511,7 +1361,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*- # Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004-2025 Free Software Foundation, Inc. # Copyright (C) 2004-2021 Free Software Foundation, Inc.
# #
# This file is free software; the Free Software Foundation # This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -1557,18 +1407,14 @@ m4_if([$1], [v7],
am_uid=`id -u || echo unknown` am_uid=`id -u || echo unknown`
am_gid=`id -g || echo unknown` am_gid=`id -g || echo unknown`
AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
if test x$am_uid = xunknown; then if test $am_uid -le $am_max_uid; then
AC_MSG_WARN([ancient id detected; assuming current UID is ok, but dist-ustar might not work])
elif test $am_uid -le $am_max_uid; then
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
else else
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
_am_tools=none _am_tools=none
fi fi
AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
if test x$gm_gid = xunknown; then if test $am_gid -le $am_max_gid; then
AC_MSG_WARN([ancient id detected; assuming current GID is ok, but dist-ustar might not work])
elif test $am_gid -le $am_max_gid; then
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
else else
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
@ -1646,26 +1492,6 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar]) AC_SUBST([am__untar])
]) # _AM_PROG_TAR ]) # _AM_PROG_TAR
# Copyright (C) 2022-2025 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# _AM_PROG_XARGS_N
# ----------------
# Check whether 'xargs -n' works. It should work everywhere, so the fallback
# is not optimized at all as we never expect to use it.
AC_DEFUN([_AM_PROG_XARGS_N],
[AC_CACHE_CHECK([xargs -n works], am_cv_xargs_n_works, [dnl
AS_IF([test "`echo 1 2 3 | xargs -n2 echo`" = "1 2
3"], [am_cv_xargs_n_works=yes], [am_cv_xargs_n_works=no])])
AS_IF([test "$am_cv_xargs_n_works" = yes], [am__xargs_n='xargs -n'], [dnl
am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "$@" "$am__xargs_n_arg"; done; }'
])dnl
AC_SUBST(am__xargs_n)
])
m4_include([m4/ax_cflags_gcc_option.m4]) m4_include([m4/ax_cflags_gcc_option.m4])
m4_include([m4/ax_pthread.m4]) m4_include([m4/ax_pthread.m4])
m4_include([m4/ld-version-script.m4]) m4_include([m4/ld-version-script.m4])

58
m4/ltoptions.m4 vendored
View File

@ -1,6 +1,6 @@
# Helper functions for option handling. -*- Autoconf -*- # Helper functions for option handling. -*- Autoconf -*-
# #
# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2024 Free # Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free
# Software Foundation, Inc. # Software Foundation, Inc.
# Written by Gary V. Vaughan, 2004 # Written by Gary V. Vaughan, 2004
# #
@ -8,7 +8,7 @@
# unlimited permission to copy and/or distribute it, with or without # unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved. # modifications, as long as this notice is preserved.
# serial 10 ltoptions.m4 # serial 8 ltoptions.m4
# This is to help aclocal find these macros, as it can't see m4_define. # This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
@ -128,7 +128,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll],
[enable_win32_dll=yes [enable_win32_dll=yes
case $host in case $host in
*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*) *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false) AC_CHECK_TOOL(OBJDUMP, objdump, false)
@ -323,27 +323,18 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
# _LT_WITH_AIX_SONAME([DEFAULT]) # _LT_WITH_AIX_SONAME([DEFAULT])
# ---------------------------------- # ----------------------------------
# implement the --enable-aix-soname configure option, and support the # implement the --with-aix-soname flag, and support the `aix-soname=aix'
# `aix-soname=aix' and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
# DEFAULT is either `aix', `both', or `svr4'. If omitted, it defaults to `aix'. # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
m4_define([_LT_WITH_AIX_SONAME], m4_define([_LT_WITH_AIX_SONAME],
[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
shared_archive_member_spec= shared_archive_member_spec=
case $host,$enable_shared in case $host,$enable_shared in
power*-*-aix[[5-9]]*,yes) power*-*-aix[[5-9]]*,yes)
AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_MSG_CHECKING([which variant of shared library versioning to provide])
AC_ARG_ENABLE([aix-soname], AC_ARG_WITH([aix-soname],
[AS_HELP_STRING([--enable-aix-soname=aix|svr4|both], [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
[shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
[case $enableval in
aix|svr4|both)
;;
*)
AC_MSG_ERROR([Unknown argument to --enable-aix-soname])
;;
esac
lt_cv_with_aix_soname=$enable_aix_soname],
[_AC_ENABLE_IF([with], [aix-soname],
[case $withval in [case $withval in
aix|svr4|both) aix|svr4|both)
;; ;;
@ -353,9 +344,8 @@ power*-*-aix[[5-9]]*,yes)
esac esac
lt_cv_with_aix_soname=$with_aix_soname], lt_cv_with_aix_soname=$with_aix_soname],
[AC_CACHE_VAL([lt_cv_with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname],
[lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)]) [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
enable_aix_soname=$lt_cv_with_aix_soname]) with_aix_soname=$lt_cv_with_aix_soname])
with_aix_soname=$enable_aix_soname
AC_MSG_RESULT([$with_aix_soname]) AC_MSG_RESULT([$with_aix_soname])
if test aix != "$with_aix_soname"; then if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member # For the AIX way of multilib, we name the shared archive member
@ -386,32 +376,13 @@ LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
# _LT_WITH_PIC([MODE]) # _LT_WITH_PIC([MODE])
# -------------------- # --------------------
# implement the --enable-pic flag, and support the 'pic-only' and 'no-pic' # implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
# LT_INIT options. # LT_INIT options.
# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
m4_define([_LT_WITH_PIC], m4_define([_LT_WITH_PIC],
[AC_ARG_ENABLE([pic], [AC_ARG_WITH([pic],
[AS_HELP_STRING([--enable-pic@<:@=PKGS@:>@], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
[lt_p=${PACKAGE-default}
case $enableval in
yes|no) pic_mode=$enableval ;;
*)
pic_mode=default
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for lt_pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$lt_pkg" = "X$lt_p"; then
pic_mode=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[dnl Continue to support --with-pic and --without-pic, for backward
dnl compatibility.
_AC_ENABLE_IF([with], [pic],
[lt_p=${PACKAGE-default} [lt_p=${PACKAGE-default}
case $withval in case $withval in
yes|no) pic_mode=$withval ;; yes|no) pic_mode=$withval ;;
@ -428,8 +399,7 @@ m4_define([_LT_WITH_PIC],
IFS=$lt_save_ifs IFS=$lt_save_ifs
;; ;;
esac], esac],
[pic_mode=m4_default([$1], [default])])] [pic_mode=m4_default([$1], [default])])
)
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
])# _LT_WITH_PIC ])# _LT_WITH_PIC

2
m4/ltsugar.m4 vendored
View File

@ -1,6 +1,6 @@
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
# #
# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2024 Free Software # Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software
# Foundation, Inc. # Foundation, Inc.
# Written by Gary V. Vaughan, 2004 # Written by Gary V. Vaughan, 2004
# #

12
m4/ltversion.m4 vendored
View File

@ -1,6 +1,6 @@
# ltversion.m4 -- version numbers -*- Autoconf -*- # ltversion.m4 -- version numbers -*- Autoconf -*-
# #
# Copyright (C) 2004, 2011-2019, 2021-2024 Free Software Foundation, # Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation,
# Inc. # Inc.
# Written by Scott James Remnant, 2004 # Written by Scott James Remnant, 2004
# #
@ -10,15 +10,15 @@
# @configure_input@ # @configure_input@
# serial 4441 ltversion.m4 # serial 4245 ltversion.m4
# This file is part of GNU Libtool # This file is part of GNU Libtool
m4_define([LT_PACKAGE_VERSION], [2.5.4]) m4_define([LT_PACKAGE_VERSION], [2.4.7])
m4_define([LT_PACKAGE_REVISION], [2.5.4]) m4_define([LT_PACKAGE_REVISION], [2.4.7])
AC_DEFUN([LTVERSION_VERSION], AC_DEFUN([LTVERSION_VERSION],
[macro_version='2.5.4' [macro_version='2.4.7'
macro_revision='2.5.4' macro_revision='2.4.7'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0) _LT_DECL(, macro_revision, 0)
]) ])

2
m4/lt~obsolete.m4 vendored
View File

@ -1,6 +1,6 @@
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
# #
# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2024 Free # Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free
# Software Foundation, Inc. # Software Foundation, Inc.
# Written by Scott James Remnant, 2004. # Written by Scott James Remnant, 2004.
# #

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.18.1 from Makefile.am. # Makefile.in generated by automake 1.16.5 from Makefile.am.
# src/Makefile. Generated from Makefile.in by configure. # src/Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994-2025 Free Software Foundation, Inc. # Copyright (C) 1994-2021 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
@ -70,8 +70,6 @@ am__make_running_with_option = \
test $$has_opt = yes test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
am__rm_f = rm -f $(am__rm_f_notfound)
am__rm_rf = rm -rf $(am__rm_f_notfound)
pkgdatadir = $(datadir)/WindowMaker pkgdatadir = $(datadir)/WindowMaker
pkgincludedir = $(includedir)/WindowMaker pkgincludedir = $(includedir)/WindowMaker
pkglibdir = $(libdir)/WindowMaker pkglibdir = $(libdir)/WindowMaker
@ -146,6 +144,7 @@ am__append_7 = \
backend/wayland/wl_grab.c \ backend/wayland/wl_grab.c \
backend/wayland/wl_keyboard.c \ backend/wayland/wl_keyboard.c \
backend/wayland/wl_popup.c \ backend/wayland/wl_popup.c \
backend/wayland/wl_dockapp_proto.c \
backend/wayland/wl_text_input.c \ backend/wayland/wl_text_input.c \
backend/wayland/wl_xdg_activation.c \ backend/wayland/wl_xdg_activation.c \
backend/wayland/wl_output_mgmt.c \ backend/wayland/wl_output_mgmt.c \
@ -170,7 +169,7 @@ am__append_8 = misc.c \
#am__append_10 = misc.hack_nf.c xmodifier.hack_nf.c #am__append_10 = misc.hack_nf.c xmodifier.hack_nf.c
am__append_11 = backend/wayland/wl_xdisplay.c backend/wayland/wl_xwayland.c am__append_11 = backend/wayland/wl_xdisplay.c backend/wayland/wl_xwayland.c
am__append_12 = -DUSE_XWAYLAND am__append_12 = -DUSE_XWAYLAND
am__append_13 = -lXinerama -lX11 -lXRes -lXext am__append_13 = -lXinerama -lX11 -lXext
subdir = src subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_gcc_option.m4 \
@ -241,6 +240,7 @@ am__wmaker_SOURCES_DIST = GNUstep.h WindowMaker.h actions.c actions.h \
backend/wayland/wl_pointer_motion.c \ backend/wayland/wl_pointer_motion.c \
backend/wayland/wl_pointer_focus.c backend/wayland/wl_grab.c \ backend/wayland/wl_pointer_focus.c backend/wayland/wl_grab.c \
backend/wayland/wl_keyboard.c backend/wayland/wl_popup.c \ backend/wayland/wl_keyboard.c backend/wayland/wl_popup.c \
backend/wayland/wl_dockapp_proto.c \
backend/wayland/wl_text_input.c \ backend/wayland/wl_text_input.c \
backend/wayland/wl_xdg_activation.c \ backend/wayland/wl_xdg_activation.c \
backend/wayland/wl_output_mgmt.c backend/wayland/wl_output.c \ backend/wayland/wl_output_mgmt.c backend/wayland/wl_output.c \
@ -297,6 +297,7 @@ am__objects_7 = backend/wayland/wl_backend.$(OBJEXT) \
backend/wayland/wl_grab.$(OBJEXT) \ backend/wayland/wl_grab.$(OBJEXT) \
backend/wayland/wl_keyboard.$(OBJEXT) \ backend/wayland/wl_keyboard.$(OBJEXT) \
backend/wayland/wl_popup.$(OBJEXT) \ backend/wayland/wl_popup.$(OBJEXT) \
backend/wayland/wl_dockapp_proto.$(OBJEXT) \
backend/wayland/wl_text_input.$(OBJEXT) \ backend/wayland/wl_text_input.$(OBJEXT) \
backend/wayland/wl_xdg_activation.$(OBJEXT) \ backend/wayland/wl_xdg_activation.$(OBJEXT) \
backend/wayland/wl_output_mgmt.$(OBJEXT) \ backend/wayland/wl_output_mgmt.$(OBJEXT) \
@ -338,7 +339,7 @@ am_wmaker_OBJECTS = actions.$(OBJEXT) appicon.$(OBJEXT) \
#am__objects_10 = misc.hack_nf.$(OBJEXT) \ #am__objects_10 = misc.hack_nf.$(OBJEXT) \
# xmodifier.hack_nf.$(OBJEXT) # xmodifier.hack_nf.$(OBJEXT)
nodist_wmaker_OBJECTS = wmaker-popup-v1-protocol.$(OBJEXT) \ nodist_wmaker_OBJECTS = wmaker-popup-v1-protocol.$(OBJEXT) \
$(am__objects_10) wmaker-dockapp-v1-protocol.$(OBJEXT) $(am__objects_10)
wmaker_OBJECTS = $(am_wmaker_OBJECTS) $(nodist_wmaker_OBJECTS) wmaker_OBJECTS = $(am_wmaker_OBJECTS) $(nodist_wmaker_OBJECTS)
am__DEPENDENCIES_1 = am__DEPENDENCIES_1 =
wmaker_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \ wmaker_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la \
@ -387,6 +388,7 @@ am__depfiles_remade = ./$(DEPDIR)/actions.Po ./$(DEPDIR)/appicon.Po \
./$(DEPDIR)/wcore.Po ./$(DEPDIR)/wdefaults.Po \ ./$(DEPDIR)/wcore.Po ./$(DEPDIR)/wdefaults.Po \
./$(DEPDIR)/window.Po ./$(DEPDIR)/winmenu.Po \ ./$(DEPDIR)/window.Po ./$(DEPDIR)/winmenu.Po \
./$(DEPDIR)/winspector.Po \ ./$(DEPDIR)/winspector.Po \
./$(DEPDIR)/wmaker-dockapp-v1-protocol.Po \
./$(DEPDIR)/wmaker-popup-v1-protocol.Po \ ./$(DEPDIR)/wmaker-popup-v1-protocol.Po \
./$(DEPDIR)/workspace.Po ./$(DEPDIR)/wsmap.Po \ ./$(DEPDIR)/workspace.Po ./$(DEPDIR)/wsmap.Po \
./$(DEPDIR)/xinerama.Po ./$(DEPDIR)/xmodifier.Po \ ./$(DEPDIR)/xinerama.Po ./$(DEPDIR)/xmodifier.Po \
@ -401,6 +403,7 @@ am__depfiles_remade = ./$(DEPDIR)/actions.Po ./$(DEPDIR)/appicon.Po \
backend/wayland/$(DEPDIR)/wl_context.Po \ backend/wayland/$(DEPDIR)/wl_context.Po \
backend/wayland/$(DEPDIR)/wl_dnd.Po \ backend/wayland/$(DEPDIR)/wl_dnd.Po \
backend/wayland/$(DEPDIR)/wl_dock.Po \ backend/wayland/$(DEPDIR)/wl_dock.Po \
backend/wayland/$(DEPDIR)/wl_dockapp_proto.Po \
backend/wayland/$(DEPDIR)/wl_dragicon.Po \ backend/wayland/$(DEPDIR)/wl_dragicon.Po \
backend/wayland/$(DEPDIR)/wl_event.Po \ backend/wayland/$(DEPDIR)/wl_event.Po \
backend/wayland/$(DEPDIR)/wl_events.Po \ backend/wayland/$(DEPDIR)/wl_events.Po \
@ -493,17 +496,17 @@ am__define_uniq_tagged_files = \
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/wconfig.h.in \ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/wconfig.h.in \
$(top_srcdir)/depcomp $(top_srcdir)/depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} '/home/lkn/src/wmaker/missing' aclocal-1.18 ACLOCAL = ${SHELL} '/home/lkn/src/windowmaker-wl/missing' aclocal-1.16
AMTAR = $${TAR-tar} AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1 AM_DEFAULT_VERBOSITY = 1
AR = ar AR = ar
AUTOCONF = ${SHELL} '/home/lkn/src/wmaker/missing' autoconf AUTOCONF = ${SHELL} '/home/lkn/src/windowmaker-wl/missing' autoconf
AUTOHEADER = ${SHELL} '/home/lkn/src/wmaker/missing' autoheader AUTOHEADER = ${SHELL} '/home/lkn/src/windowmaker-wl/missing' autoheader
AUTOMAKE = ${SHELL} '/home/lkn/src/wmaker/missing' automake-1.18 AUTOMAKE = ${SHELL} '/home/lkn/src/windowmaker-wl/missing' automake-1.16
AWK = gawk AWK = gawk
CC = gcc CC = gcc
CCDEPMODE = depmode=gcc3 CCDEPMODE = depmode=gcc3
CFLAGS = -O0 -g -fsanitize=address -fno-omit-frame-pointer -Wall -Wextra -Wno-sign-compare -Werror=trampolines -Wno-deprecated -Wno-deprecated-declarations CFLAGS = -g -O2 -Wall -Wextra -Wno-sign-compare -Werror=trampolines -Wno-deprecated -Wno-deprecated-declarations
CPP = gcc -E CPP = gcc -E
CPPFLAGS = -DNDEBUG -D_XOPEN_SOURCE=700 -D_GNU_SOURCE CPPFLAGS = -DNDEBUG -D_XOPEN_SOURCE=700 -D_GNU_SOURCE
CSCOPE = cscope CSCOPE = cscope
@ -520,7 +523,7 @@ ECHO_T =
EGREP = /usr/bin/grep -E EGREP = /usr/bin/grep -E
ETAGS = etags ETAGS = etags
EXEEXT = EXEEXT =
FCLIBS = -lfontconfig FCLIBS = -lfontconfig -lfreetype
FGREP = /usr/bin/grep -F FGREP = /usr/bin/grep -F
FILECMD = file FILECMD = file
GFXLIBS = -lXpm -lpng -ljpeg -lgif -ltiff -lwebp GFXLIBS = -lXpm -lpng -ljpeg -lgif -ltiff -lwebp
@ -534,17 +537,17 @@ INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL} INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
INTLIBS = INTLIBS =
LD = /usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64 LD = /usr/bin/ld -m elf_x86_64
LDFLAGS = -fsanitize=address LDFLAGS =
LIBBSD = LIBBSD =
LIBEXIF = LIBEXIF =
LIBM = -lm LIBM = -lm
LIBOBJS = LIBOBJS =
LIBRARY_SEARCH_PATH = -L${libdir} LIBRARY_SEARCH_PATH = -L${libdir}
LIBS = -lxcb LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIBXINERAMA = -lXinerama LIBXINERAMA = -lXinerama
LIBXMU = -lXmu LIBXMU =
LIBXRANDR = LIBXRANDR =
LINGUAS = LINGUAS =
LIPO = LIPO =
@ -553,7 +556,7 @@ LTLIBOBJS =
LT_SYS_LIBRARY_PATH = LT_SYS_LIBRARY_PATH =
MAGICKFLAGS = MAGICKFLAGS =
MAGICKLIBS = MAGICKLIBS =
MAKEINFO = ${SHELL} '/home/lkn/src/wmaker/missing' makeinfo MAKEINFO = ${SHELL} '/home/lkn/src/windowmaker-wl/missing' makeinfo
MANIFEST_TOOL = : MANIFEST_TOOL = :
MANLANGDIRS = MANLANGDIRS =
MKDIR_P = /usr/bin/mkdir -p MKDIR_P = /usr/bin/mkdir -p
@ -571,11 +574,11 @@ PACKAGE_STRING = WindowMaker 0.96.0
PACKAGE_TARNAME = WindowMaker PACKAGE_TARNAME = WindowMaker
PACKAGE_URL = http://www.windowmaker.org/ PACKAGE_URL = http://www.windowmaker.org/
PACKAGE_VERSION = 0.96.0 PACKAGE_VERSION = 0.96.0
PANGO_CFLAGS = -I/usr/include/pango-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/libpng16 -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include PANGO_CFLAGS = -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/local/include/pixman-1 -pthread
PANGO_LIBS = -lpangoxft-1.0 -lpangoft2-1.0 -lpango-1.0 -lXft -lfontconfig -lharfbuzz -lfreetype -lgobject-2.0 -lglib-2.0 PANGO_LIBS = -lpangoxft-1.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lfontconfig -lfreetype -lXft
PATH_SEPARATOR = : PATH_SEPARATOR = :
PIXMAN_CFLAGS = -I/usr/include/pixman-1 PIXMAN_CFLAGS = -I/usr/local/include/pixman-1
PIXMAN_LIBS = -lpixman-1 PIXMAN_LIBS = -L/usr/local/lib/x86_64-linux-gnu -lpixman-1
PKG_CONFIG = /usr/bin/pkg-config PKG_CONFIG = /usr/bin/pkg-config
PKG_CONFIG_LIBDIR = PKG_CONFIG_LIBDIR =
PKG_CONFIG_PATH = PKG_CONFIG_PATH =
@ -585,20 +588,20 @@ PTHREAD_LIBS =
RANLIB = ranlib RANLIB = ranlib
SED = /usr/bin/sed SED = /usr/bin/sed
SET_MAKE = SET_MAKE =
SHELL = /bin/sh SHELL = /bin/bash
STRIP = strip STRIP = strip
UTILMOFILES = UTILMOFILES =
VERSION = 0.96.0 VERSION = 0.96.0
WAYLAND_CLIENT_CFLAGS = -I/usr/lib64/libffi/include WAYLAND_CLIENT_CFLAGS = -I/usr/local/include
WAYLAND_CLIENT_LIBS = -lwayland-client -lm -lxkbcommon WAYLAND_CLIENT_LIBS = -L/usr/local/lib/x86_64-linux-gnu -lwayland-client -lm -lxkbcommon
WAYLAND_PROTOCOLS_DIR = //usr/share/wayland-protocols WAYLAND_PROTOCOLS_DIR = //usr/share/wayland-protocols
WAYLAND_SCANNER = /usr/bin/wayland-scanner WAYLAND_SCANNER = /usr/local/bin/wayland-scanner
WEB_REPO_ROOT = WEB_REPO_ROOT =
WINGSMOFILES = WINGSMOFILES =
WINGS_PANGO_LIBS_NO_XFT = -lpangoft2-1.0 -lpango-1.0 -lfontconfig -lharfbuzz -lfreetype -lgobject-2.0 -lglib-2.0 WINGS_PANGO_LIBS_NO_XFT = -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lharfbuzz -lfontconfig -lfreetype
WINGS_VERSION = 5:0:2 WINGS_VERSION = 5:0:2
WLROOTS_CFLAGS = -I/usr/include/wlroots-0.19 -I/usr/include/libdrm -I/usr/include/elogind -I/usr/lib64/libffi/include -I/usr/include/pixman-1 -DWLR_USE_UNSTABLE WLROOTS_CFLAGS = -I/usr/local/include/wlroots-0.19 -I/usr/local/include -I/usr/local/include/pixman-1 -I/usr/include/libdrm -DWLR_USE_UNSTABLE
WLROOTS_LIBS = -lwlroots-0.19 -lwayland-server -lm -lxkbcommon -lpixman-1 WLROOTS_LIBS = -L/usr/local/lib/x86_64-linux-gnu -lwlroots-0.19 -lwayland-server -lm -lxkbcommon -lpixman-1
WMAKERMOFILES = WMAKERMOFILES =
WPREFSMOFILES = WPREFSMOFILES =
WRASTERMOFILES = WRASTERMOFILES =
@ -607,31 +610,29 @@ WRASTER_VERSION = 7:0:1
WUTIL_VERSION = 5:0:0 WUTIL_VERSION = 5:0:0
XCFLAGS = XCFLAGS =
XFTCONFIG = XFTCONFIG =
XFT_CFLAGS = -I/usr/include/freetype2 XFT_CFLAGS = -I/usr/include/freetype2 -I/usr/include/libpng16
XFT_LIBS = -lXft XFT_LIBS = -lXft
XGETTEXT = xgettext XGETTEXT = xgettext
XLFLAGS = XLFLAGS =
XLIBS = -lX11 -lXRes -lXext XLIBS = -lX11 -lXext
XMKMF = XMKMF =
X_CFLAGS = X_CFLAGS =
X_EXTRA_LIBS = X_EXTRA_LIBS =
X_LIBRARY_PATH = X_LIBRARY_PATH =
X_LIBS = X_LIBS =
X_PRE_LIBS = -lSM -lICE X_PRE_LIBS = -lSM -lICE
abs_builddir = /home/lkn/src/wmaker/src abs_builddir = /home/lkn/src/windowmaker-wl/src
abs_srcdir = /home/lkn/src/wmaker/src abs_srcdir = /home/lkn/src/windowmaker-wl/src
abs_top_builddir = /home/lkn/src/wmaker abs_top_builddir = /home/lkn/src/windowmaker-wl
abs_top_srcdir = /home/lkn/src/wmaker abs_top_srcdir = /home/lkn/src/windowmaker-wl
ac_ct_AR = ar ac_ct_AR = ar
ac_ct_CC = gcc ac_ct_CC = gcc
ac_ct_DUMPBIN = ac_ct_DUMPBIN =
am__include = include am__include = include
am__leading_dot = . am__leading_dot = .
am__quote = am__quote =
am__rm_f_notfound = am__tar = $${TAR-tar} chof - "$$tardir"
am__tar = tar --format=ustar -chf - "$$tardir" am__untar = $${TAR-tar} xf -
am__untar = tar -xf -
am__xargs_n = xargs -n
ax_pthread_config = ax_pthread_config =
bindir = ${exec_prefix}/bin bindir = ${exec_prefix}/bin
build = x86_64-pc-linux-gnu build = x86_64-pc-linux-gnu
@ -654,7 +655,7 @@ htmldir = ${docdir}
inc_search_path = -I${includedir} inc_search_path = -I${includedir}
includedir = ${prefix}/include includedir = ${prefix}/include
infodir = ${datarootdir}/info infodir = ${datarootdir}/info
install_sh = ${SHELL} /home/lkn/src/wmaker/install-sh install_sh = ${SHELL} /home/lkn/src/windowmaker-wl/install-sh
lcov_output_directory = lcov_output_directory =
lib_search_path = -L${libdir} lib_search_path = -L${libdir}
libdir = ${exec_prefix}/lib libdir = ${exec_prefix}/lib
@ -690,6 +691,8 @@ WLR_PROTO_DIR = $(shell pkg-config --variable=pkgdatadir wlr-protocols 2>/dev/nu
BUILT_SOURCES = wconfig.h \ BUILT_SOURCES = wconfig.h \
wmaker-popup-v1-server-protocol.h \ wmaker-popup-v1-server-protocol.h \
wmaker-popup-v1-protocol.c \ wmaker-popup-v1-protocol.c \
wmaker-dockapp-v1-server-protocol.h \
wmaker-dockapp-v1-protocol.c \
protocols/pointer-constraints-unstable-v1-protocol.h \ protocols/pointer-constraints-unstable-v1-protocol.h \
protocols/wlr-output-power-management-unstable-v1-protocol.h \ protocols/wlr-output-power-management-unstable-v1-protocol.h \
protocols/wlr-layer-shell-unstable-v1-protocol.h \ protocols/wlr-layer-shell-unstable-v1-protocol.h \
@ -698,9 +701,11 @@ BUILT_SOURCES = wconfig.h \
EXTRA_DIST = EXTRA_DIST =
nodist_wmaker_SOURCES = wmaker-popup-v1-protocol.c \ nodist_wmaker_SOURCES = wmaker-popup-v1-protocol.c \
wmaker-popup-v1-server-protocol.h $(am__append_9) wmaker-popup-v1-server-protocol.h wmaker-dockapp-v1-protocol.c \
wmaker-dockapp-v1-server-protocol.h $(am__append_9)
CLEANFILES = wmaker-popup-v1-server-protocol.h \ CLEANFILES = wmaker-popup-v1-server-protocol.h \
wmaker-popup-v1-protocol.c \ wmaker-popup-v1-protocol.c wmaker-dockapp-v1-server-protocol.h \
wmaker-dockapp-v1-protocol.c \
protocols/pointer-constraints-unstable-v1-protocol.h \ protocols/pointer-constraints-unstable-v1-protocol.h \
protocols/wlr-output-power-management-unstable-v1-protocol.h \ protocols/wlr-output-power-management-unstable-v1-protocol.h \
protocols/wlr-layer-shell-unstable-v1-protocol.h \ protocols/wlr-layer-shell-unstable-v1-protocol.h \
@ -728,13 +733,13 @@ wmaker_SOURCES = GNUstep.h WindowMaker.h actions.c actions.h appicon.c \
wsmap.h $(am__append_2) $(am__append_3) $(am__append_4) \ wsmap.h $(am__append_2) $(am__append_3) $(am__append_4) \
$(am__append_5) $(am__append_6) $(am__append_7) \ $(am__append_5) $(am__append_6) $(am__append_7) \
$(am__append_8) $(am__append_11) $(am__append_8) $(am__append_11)
AM_CFLAGS = -I/usr/include/pango-1.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/libpng16 -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/libffi/include -I/usr/include/wlroots-0.19 -I/usr/include/libdrm -I/usr/include/elogind -I/usr/lib64/libffi/include -I/usr/include/pixman-1 -DWLR_USE_UNSTABLE AM_CFLAGS = -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/local/include/pixman-1 -pthread -I/usr/local/include/wlroots-0.19 -I/usr/local/include -I/usr/local/include/pixman-1 -I/usr/include/libdrm -DWLR_USE_UNSTABLE
AM_CPPFLAGS = $(DFLAGS) -I$(top_builddir)/wrlib -I$(top_srcdir)/WINGs \ AM_CPPFLAGS = $(DFLAGS) -I$(top_builddir)/wrlib -I$(top_srcdir)/WINGs \
-I$(top_builddir)/WINGs -I$(srcdir)/backend/wayland \ -I$(top_builddir)/WINGs -I$(srcdir)/backend/wayland \
-I${includedir} $(am__append_12) -I${includedir} $(am__append_12)
wmaker_LDADD = $(top_builddir)/WINGs/libWINGs.la \ wmaker_LDADD = $(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/WINGs/libWUtil.la \ $(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wrlib/libwraster.la -lwlroots-0.19 -lwayland-server -lm -lxkbcommon -lpixman-1 -lm \ $(top_builddir)/wrlib/libwraster.la -L/usr/local/lib/x86_64-linux-gnu -lwlroots-0.19 -lwayland-server -lm -lxkbcommon -lpixman-1 -lm \
$(am__append_13) $(am__append_13)
###################################################################### ######################################################################
@ -873,25 +878,30 @@ uninstall-binPROGRAMS:
`; \ `; \
test -n "$$list" || exit 0; \ test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files cd "$(DESTDIR)$(bindir)" && rm -f $$files
clean-binPROGRAMS: clean-binPROGRAMS:
$(am__rm_f) $(bin_PROGRAMS) @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
test -z "$(EXEEXT)" || $(am__rm_f) $(bin_PROGRAMS:$(EXEEXT)=) echo " rm -f" $$list; \
rm -f $$list || exit $$?; \
test -n "$(EXEEXT)" || exit 0; \
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
backend/$(am__dirstamp): backend/$(am__dirstamp):
@$(MKDIR_P) backend @$(MKDIR_P) backend
@: >>backend/$(am__dirstamp) @: > backend/$(am__dirstamp)
backend/$(DEPDIR)/$(am__dirstamp): backend/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) backend/$(DEPDIR) @$(MKDIR_P) backend/$(DEPDIR)
@: >>backend/$(DEPDIR)/$(am__dirstamp) @: > backend/$(DEPDIR)/$(am__dirstamp)
backend/wm_backend.$(OBJEXT): backend/$(am__dirstamp) \ backend/wm_backend.$(OBJEXT): backend/$(am__dirstamp) \
backend/$(DEPDIR)/$(am__dirstamp) backend/$(DEPDIR)/$(am__dirstamp)
backend/x11/$(am__dirstamp): backend/x11/$(am__dirstamp):
@$(MKDIR_P) backend/x11 @$(MKDIR_P) backend/x11
@: >>backend/x11/$(am__dirstamp) @: > backend/x11/$(am__dirstamp)
backend/x11/$(DEPDIR)/$(am__dirstamp): backend/x11/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) backend/x11/$(DEPDIR) @$(MKDIR_P) backend/x11/$(DEPDIR)
@: >>backend/x11/$(DEPDIR)/$(am__dirstamp) @: > backend/x11/$(DEPDIR)/$(am__dirstamp)
backend/x11/x11_backend.$(OBJEXT): backend/x11/$(am__dirstamp) \ backend/x11/x11_backend.$(OBJEXT): backend/x11/$(am__dirstamp) \
backend/x11/$(DEPDIR)/$(am__dirstamp) backend/x11/$(DEPDIR)/$(am__dirstamp)
backend/x11/x11_event.$(OBJEXT): backend/x11/$(am__dirstamp) \ backend/x11/x11_event.$(OBJEXT): backend/x11/$(am__dirstamp) \
@ -906,10 +916,10 @@ backend/x11/xdnd.$(OBJEXT): backend/x11/$(am__dirstamp) \
backend/x11/$(DEPDIR)/$(am__dirstamp) backend/x11/$(DEPDIR)/$(am__dirstamp)
backend/wayland/$(am__dirstamp): backend/wayland/$(am__dirstamp):
@$(MKDIR_P) backend/wayland @$(MKDIR_P) backend/wayland
@: >>backend/wayland/$(am__dirstamp) @: > backend/wayland/$(am__dirstamp)
backend/wayland/$(DEPDIR)/$(am__dirstamp): backend/wayland/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) backend/wayland/$(DEPDIR) @$(MKDIR_P) backend/wayland/$(DEPDIR)
@: >>backend/wayland/$(DEPDIR)/$(am__dirstamp) @: > backend/wayland/$(DEPDIR)/$(am__dirstamp)
backend/wayland/wl_backend.$(OBJEXT): backend/wayland/$(am__dirstamp) \ backend/wayland/wl_backend.$(OBJEXT): backend/wayland/$(am__dirstamp) \
backend/wayland/$(DEPDIR)/$(am__dirstamp) backend/wayland/$(DEPDIR)/$(am__dirstamp)
backend/wayland/wl_background.$(OBJEXT): \ backend/wayland/wl_background.$(OBJEXT): \
@ -988,6 +998,9 @@ backend/wayland/wl_keyboard.$(OBJEXT): \
backend/wayland/$(DEPDIR)/$(am__dirstamp) backend/wayland/$(DEPDIR)/$(am__dirstamp)
backend/wayland/wl_popup.$(OBJEXT): backend/wayland/$(am__dirstamp) \ backend/wayland/wl_popup.$(OBJEXT): backend/wayland/$(am__dirstamp) \
backend/wayland/$(DEPDIR)/$(am__dirstamp) backend/wayland/$(DEPDIR)/$(am__dirstamp)
backend/wayland/wl_dockapp_proto.$(OBJEXT): \
backend/wayland/$(am__dirstamp) \
backend/wayland/$(DEPDIR)/$(am__dirstamp)
backend/wayland/wl_text_input.$(OBJEXT): \ backend/wayland/wl_text_input.$(OBJEXT): \
backend/wayland/$(am__dirstamp) \ backend/wayland/$(am__dirstamp) \
backend/wayland/$(DEPDIR)/$(am__dirstamp) backend/wayland/$(DEPDIR)/$(am__dirstamp)
@ -1093,6 +1106,7 @@ include ./$(DEPDIR)/wdefaults.Po # am--include-marker
include ./$(DEPDIR)/window.Po # am--include-marker include ./$(DEPDIR)/window.Po # am--include-marker
include ./$(DEPDIR)/winmenu.Po # am--include-marker include ./$(DEPDIR)/winmenu.Po # am--include-marker
include ./$(DEPDIR)/winspector.Po # am--include-marker include ./$(DEPDIR)/winspector.Po # am--include-marker
include ./$(DEPDIR)/wmaker-dockapp-v1-protocol.Po # am--include-marker
include ./$(DEPDIR)/wmaker-popup-v1-protocol.Po # am--include-marker include ./$(DEPDIR)/wmaker-popup-v1-protocol.Po # am--include-marker
include ./$(DEPDIR)/workspace.Po # am--include-marker include ./$(DEPDIR)/workspace.Po # am--include-marker
include ./$(DEPDIR)/wsmap.Po # am--include-marker include ./$(DEPDIR)/wsmap.Po # am--include-marker
@ -1110,6 +1124,7 @@ include backend/wayland/$(DEPDIR)/wl_clipboard.Po # am--include-marker
include backend/wayland/$(DEPDIR)/wl_context.Po # am--include-marker include backend/wayland/$(DEPDIR)/wl_context.Po # am--include-marker
include backend/wayland/$(DEPDIR)/wl_dnd.Po # am--include-marker include backend/wayland/$(DEPDIR)/wl_dnd.Po # am--include-marker
include backend/wayland/$(DEPDIR)/wl_dock.Po # am--include-marker include backend/wayland/$(DEPDIR)/wl_dock.Po # am--include-marker
include backend/wayland/$(DEPDIR)/wl_dockapp_proto.Po # am--include-marker
include backend/wayland/$(DEPDIR)/wl_dragicon.Po # am--include-marker include backend/wayland/$(DEPDIR)/wl_dragicon.Po # am--include-marker
include backend/wayland/$(DEPDIR)/wl_event.Po # am--include-marker include backend/wayland/$(DEPDIR)/wl_event.Po # am--include-marker
include backend/wayland/$(DEPDIR)/wl_events.Po # am--include-marker include backend/wayland/$(DEPDIR)/wl_events.Po # am--include-marker
@ -1159,7 +1174,7 @@ include backend/x11/$(DEPDIR)/xdnd.Po # am--include-marker
$(am__depfiles_remade): $(am__depfiles_remade):
@$(MKDIR_P) $(@D) @$(MKDIR_P) $(@D)
@: >>$@ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
am--depfiles: $(am__depfiles_remade) am--depfiles: $(am__depfiles_remade)
@ -1244,7 +1259,6 @@ cscopelist-am: $(am__tagged_files)
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(BUILT_SOURCES) distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am $(MAKE) $(AM_MAKEFLAGS) distdir-am
@ -1311,22 +1325,22 @@ install-strip:
mostlyclean-generic: mostlyclean-generic:
clean-generic: clean-generic:
-$(am__rm_f) $(CLEANFILES) -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic: distclean-generic:
-$(am__rm_f) $(CONFIG_CLEAN_FILES) -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-$(am__rm_f) backend/$(DEPDIR)/$(am__dirstamp) -rm -f backend/$(DEPDIR)/$(am__dirstamp)
-$(am__rm_f) backend/$(am__dirstamp) -rm -f backend/$(am__dirstamp)
-$(am__rm_f) backend/wayland/$(DEPDIR)/$(am__dirstamp) -rm -f backend/wayland/$(DEPDIR)/$(am__dirstamp)
-$(am__rm_f) backend/wayland/$(am__dirstamp) -rm -f backend/wayland/$(am__dirstamp)
-$(am__rm_f) backend/x11/$(DEPDIR)/$(am__dirstamp) -rm -f backend/x11/$(DEPDIR)/$(am__dirstamp)
-$(am__rm_f) backend/x11/$(am__dirstamp) -rm -f backend/x11/$(am__dirstamp)
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild." @echo "it deletes files that may require special tools to rebuild."
-$(am__rm_f) $(BUILT_SOURCES) -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am clean: clean-am
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
@ -1380,6 +1394,7 @@ distclean: distclean-am
-rm -f ./$(DEPDIR)/window.Po -rm -f ./$(DEPDIR)/window.Po
-rm -f ./$(DEPDIR)/winmenu.Po -rm -f ./$(DEPDIR)/winmenu.Po
-rm -f ./$(DEPDIR)/winspector.Po -rm -f ./$(DEPDIR)/winspector.Po
-rm -f ./$(DEPDIR)/wmaker-dockapp-v1-protocol.Po
-rm -f ./$(DEPDIR)/wmaker-popup-v1-protocol.Po -rm -f ./$(DEPDIR)/wmaker-popup-v1-protocol.Po
-rm -f ./$(DEPDIR)/workspace.Po -rm -f ./$(DEPDIR)/workspace.Po
-rm -f ./$(DEPDIR)/wsmap.Po -rm -f ./$(DEPDIR)/wsmap.Po
@ -1397,6 +1412,7 @@ distclean: distclean-am
-rm -f backend/wayland/$(DEPDIR)/wl_context.Po -rm -f backend/wayland/$(DEPDIR)/wl_context.Po
-rm -f backend/wayland/$(DEPDIR)/wl_dnd.Po -rm -f backend/wayland/$(DEPDIR)/wl_dnd.Po
-rm -f backend/wayland/$(DEPDIR)/wl_dock.Po -rm -f backend/wayland/$(DEPDIR)/wl_dock.Po
-rm -f backend/wayland/$(DEPDIR)/wl_dockapp_proto.Po
-rm -f backend/wayland/$(DEPDIR)/wl_dragicon.Po -rm -f backend/wayland/$(DEPDIR)/wl_dragicon.Po
-rm -f backend/wayland/$(DEPDIR)/wl_event.Po -rm -f backend/wayland/$(DEPDIR)/wl_event.Po
-rm -f backend/wayland/$(DEPDIR)/wl_events.Po -rm -f backend/wayland/$(DEPDIR)/wl_events.Po
@ -1536,6 +1552,7 @@ maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/window.Po -rm -f ./$(DEPDIR)/window.Po
-rm -f ./$(DEPDIR)/winmenu.Po -rm -f ./$(DEPDIR)/winmenu.Po
-rm -f ./$(DEPDIR)/winspector.Po -rm -f ./$(DEPDIR)/winspector.Po
-rm -f ./$(DEPDIR)/wmaker-dockapp-v1-protocol.Po
-rm -f ./$(DEPDIR)/wmaker-popup-v1-protocol.Po -rm -f ./$(DEPDIR)/wmaker-popup-v1-protocol.Po
-rm -f ./$(DEPDIR)/workspace.Po -rm -f ./$(DEPDIR)/workspace.Po
-rm -f ./$(DEPDIR)/wsmap.Po -rm -f ./$(DEPDIR)/wsmap.Po
@ -1553,6 +1570,7 @@ maintainer-clean: maintainer-clean-am
-rm -f backend/wayland/$(DEPDIR)/wl_context.Po -rm -f backend/wayland/$(DEPDIR)/wl_context.Po
-rm -f backend/wayland/$(DEPDIR)/wl_dnd.Po -rm -f backend/wayland/$(DEPDIR)/wl_dnd.Po
-rm -f backend/wayland/$(DEPDIR)/wl_dock.Po -rm -f backend/wayland/$(DEPDIR)/wl_dock.Po
-rm -f backend/wayland/$(DEPDIR)/wl_dockapp_proto.Po
-rm -f backend/wayland/$(DEPDIR)/wl_dragicon.Po -rm -f backend/wayland/$(DEPDIR)/wl_dragicon.Po
-rm -f backend/wayland/$(DEPDIR)/wl_event.Po -rm -f backend/wayland/$(DEPDIR)/wl_event.Po
-rm -f backend/wayland/$(DEPDIR)/wl_events.Po -rm -f backend/wayland/$(DEPDIR)/wl_events.Po
@ -1645,6 +1663,13 @@ wmaker-popup-v1-protocol.c: $(top_srcdir)/protocols/wmaker-popup-v1.xml \
wmaker-popup-v1-server-protocol.h wmaker-popup-v1-server-protocol.h
$(WAYLAND_SCANNER) private-code $< $@ $(WAYLAND_SCANNER) private-code $< $@
wmaker-dockapp-v1-server-protocol.h: $(top_srcdir)/protocols/wmaker-dockapp-v1.xml
$(WAYLAND_SCANNER) server-header $< $@
wmaker-dockapp-v1-protocol.c: $(top_srcdir)/protocols/wmaker-dockapp-v1.xml \
wmaker-dockapp-v1-server-protocol.h
$(WAYLAND_SCANNER) private-code $< $@
# Generate protocol headers for Wayland compositor backend # Generate protocol headers for Wayland compositor backend
protocols/pointer-constraints-unstable-v1-protocol.h: protocols/pointer-constraints-unstable-v1-protocol.h:
@mkdir -p protocols @mkdir -p protocols
@ -1714,10 +1739,3 @@ check-no-x11-policy:
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:
# Tell GNU make to disable its built-in pattern rules.
%:: %,v
%:: RCS/%,v
%:: RCS/%
%:: s.%
%:: SCCS/s.%

View File

@ -555,6 +555,31 @@ wl_display_open(const char *name)
wlr_wl_output_create(wl_state.wl_backend_inner); wlr_wl_output_create(wl_state.wl_backend_inner);
} }
/* Create XKB keymap BEFORE starting the backend so that keyboards
* detected during wlr_backend_start() (libinput fires new_input
* synchronously) can have the keymap applied immediately. */
{
struct xkb_context *xkb_ctx = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
if (xkb_ctx) {
struct xkb_rule_names rules = {
.rules = getenv("XKB_DEFAULT_RULES"),
.model = getenv("XKB_DEFAULT_MODEL"),
.layout = getenv("XKB_DEFAULT_LAYOUT"),
.variant = getenv("XKB_DEFAULT_VARIANT"),
.options = getenv("XKB_DEFAULT_OPTIONS"),
};
wl_state.xkb_keymap = xkb_keymap_new_from_names(
xkb_ctx, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS);
xkb_context_unref(xkb_ctx);
if (wl_state.xkb_keymap)
wwarning("wl_backend: XKB keymap created (layout=%s variant=%s)",
rules.layout ? rules.layout : "(default)",
rules.variant ? rules.variant : "(none)");
else
wwarning("wl_backend: XKB keymap creation failed");
}
}
if (!wlr_backend_start(wl_state.backend)) { if (!wlr_backend_start(wl_state.backend)) {
wwarning("wl_backend: failed to start backend"); wwarning("wl_backend: failed to start backend");
wlr_renderer_destroy(wl_state.renderer); wlr_renderer_destroy(wl_state.renderer);
@ -590,36 +615,6 @@ wl_display_open(const char *name)
wl_protocols_init(); wl_protocols_init();
/* 53: In wlroots 0.19, the headless backend has no input devices.
* Real keyboard/pointer devices arrive via handle_backend_new_input when
* the nested Wayland backend starts. We pre-create the default XKB keymap
* here so wl_keysym_to_keycode() can resolve key bindings during StartUp()
* before any real keyboard device has been received. */
{
struct xkb_context *xkb_ctx = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
if (xkb_ctx) {
struct xkb_rule_names rules = {
.rules = getenv("XKB_DEFAULT_RULES"),
.model = getenv("XKB_DEFAULT_MODEL"),
.layout = getenv("XKB_DEFAULT_LAYOUT"),
.variant = getenv("XKB_DEFAULT_VARIANT"),
.options = getenv("XKB_DEFAULT_OPTIONS"),
};
wl_state.xkb_keymap = xkb_keymap_new_from_names(
xkb_ctx, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS);
xkb_context_unref(xkb_ctx);
if (wl_state.xkb_keymap) {
wwarning("wl_backend: default XKB keymap created for key binding resolution");
/* Apply to any keyboard that was wired before keymap was ready,
* but only if it doesn't already have one from the host. */
if (wl_state.keyboard_dev) {
struct wlr_keyboard *kb = wlr_keyboard_from_input_device(wl_state.keyboard_dev);
if (!kb->xkb_state)
wlr_keyboard_set_keymap(kb, wl_state.xkb_keymap);
}
}
}
}
/* Advertise keyboard+pointer capability unconditionally so clients do not /* Advertise keyboard+pointer capability unconditionally so clients do not
* need to wait for a real device to appear before binding wl_keyboard / wl_pointer. */ * need to wait for a real device to appear before binding wl_keyboard / wl_pointer. */
if (wl_state.seat) if (wl_state.seat)

View File

@ -148,25 +148,33 @@ handle_backend_new_input(struct wl_listener *listener, void *data)
switch (dev->type) { switch (dev->type) {
case WLR_INPUT_DEVICE_KEYBOARD: { case WLR_INPUT_DEVICE_KEYBOARD: {
struct wlr_keyboard *kb = wlr_keyboard_from_input_device(dev); struct wlr_keyboard *kb = wlr_keyboard_from_input_device(dev);
INPUT_LISTENER_REMOVE(wl_state.real_keyboard_key_listener); /* Always apply our keymap — libinput keyboards arrive without one */
INPUT_LISTENER_REMOVE(wl_state.real_keyboard_modifiers_listener); if (wl_state.xkb_keymap) {
INPUT_LISTENER_REMOVE(wl_state.real_keyboard_destroy_listener);
if (wl_state.xkb_keymap && !kb->xkb_state)
wlr_keyboard_set_keymap(kb, wl_state.xkb_keymap); wlr_keyboard_set_keymap(kb, wl_state.xkb_keymap);
wwarning("wl_backend: applied XKB keymap to keyboard %p", (void*)dev);
}
/* Track a keyboard device for wlr_seat_set_keyboard calls */
if (!wl_state.keyboard_dev) {
wl_state.real_keyboard_dev = dev; wl_state.real_keyboard_dev = dev;
wl_state.keyboard_dev = dev; wl_state.keyboard_dev = dev;
}
if (wl_state.seat) if (wl_state.seat)
wlr_seat_set_keyboard(wl_state.seat, kb); wlr_seat_set_keyboard(wl_state.seat, kb);
wl_state.real_keyboard_key_listener.notify = handle_keyboard_key; /* Wire key events — use wlr_keyboard_group or attach to each device.
wl_signal_add(&kb->events.key, * wlroots seat aggregates all keyboards automatically when we call
&wl_state.real_keyboard_key_listener); * wlr_seat_set_keyboard, but we still need per-device listeners for
wl_state.real_keyboard_modifiers_listener.notify = handle_keyboard_modifiers; * the key events to reach our handler. Use dynamic allocation. */
wl_signal_add(&kb->events.modifiers, struct wl_listener *key_l = calloc(1, sizeof(*key_l));
&wl_state.real_keyboard_modifiers_listener); struct wl_listener *mod_l = calloc(1, sizeof(*mod_l));
wl_state.real_keyboard_destroy_listener.notify = handle_keyboard_destroy; if (key_l) {
wl_signal_add(&dev->events.destroy, key_l->notify = handle_keyboard_key;
&wl_state.real_keyboard_destroy_listener); wl_signal_add(&kb->events.key, key_l);
wwarning("wl_backend: real keyboard wired dev=%p xkb_state=%s", (void*)dev, }
if (mod_l) {
mod_l->notify = handle_keyboard_modifiers;
wl_signal_add(&kb->events.modifiers, mod_l);
}
wwarning("wl_backend: keyboard wired dev=%p xkb_state=%s", (void*)dev,
kb->xkb_state ? "yes" : "no"); kb->xkb_state ? "yes" : "no");
break; break;
} }

View File

@ -26,6 +26,8 @@ handle_keyboard_key(struct wl_listener *listener, void *data)
struct wlr_keyboard_key_event *event = data; struct wlr_keyboard_key_event *event = data;
(void)listener; (void)listener;
wwarning("handle_keyboard_key: keycode=%u state=%d", event->keycode, event->state);
if (!wl_state.seat) if (!wl_state.seat)
return; return;

View File

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.24.0 */ /* Generated by wayland-scanner 1.25.90 */
/* /*
* Copyright © 2026 Window Maker Team * Copyright © 2026 Window Maker Team

View File

@ -1,4 +1,4 @@
/* Generated by wayland-scanner 1.24.0 */ /* Generated by wayland-scanner 1.25.90 */
#ifndef WMAKER_DOCKAPP_V1_SERVER_PROTOCOL_H #ifndef WMAKER_DOCKAPP_V1_SERVER_PROTOCOL_H
#define WMAKER_DOCKAPP_V1_SERVER_PROTOCOL_H #define WMAKER_DOCKAPP_V1_SERVER_PROTOCOL_H

0
stIncmtw Normal file
View File